|
|
|
| Добрый день. Не могу решить проблему в запросе, как от : DateDiff("yyyy";[ТабБазаГлавная]![Дата];Date()) отнять 30 дней или один месяц. Заранее благодарен | |
|
| |
|
|
|
| почитайте в хелпе о других функциях даты/времени
dateadd, например | |
|
| |
|
|
|
| можно так в VB:
Private Sub Form_Load()
f = Me.Дата ' дата от которой надо отнять
q = 30 ' ставишь число которое надо отнять
sss = DateDiff("yyyy", q, f)
Me.Возраст = sss
End Sub
|
| |
|
| |
|
|
|
|
| толи не правильно условие, тли объяснение т.к. DateDiff("yyyy";[ТабБазаГлавная]![Дата];Date()) - вернет количество ЛЕТ между двумя датами, и как отнимать 30 дней от одного года?????
Str_ = #1/1/2009#
Str_2 = #5/1/2008#
uu = DateDiff("yyyy", Str_, Str_2) - возвращает: -1
Str_ = #1/1/2009#
Str_2 = #5/1/2009#
uu = DateDiff("yyyy", Str_, Str_2) - возвращает: 0
Str_ = #1/1/2009#
Str_2 = #5/1/2010#
uu = DateDiff("yyyy", Str_, Str_2) - возвращает: 1
поэтому нужно использовать DateSerial(),
Пример из хелпа, вам подходит: вычисления количества дней в заданном месяце.
Параметром функции DaysInMonth может быть либо дата, либо строка.
Function DaysInMonth(dteInput As Date) As Integer
Dim intDays As Integer
' Добавим один месяц и вычтем даты, чтобы найти разницу.
intDays = DateSerial(Year(dteInput), Month(dteInput) + 1, Day(dteInput)) _
- DateSerial(Year(dteInput), Month(dteInput), Day(dteInput))
DaysInMonth = intDays
|
| |
|
| |