TopPicLogo TopPicText

Дата - Условие WHERE по полю типа Date/Time

Андрей Митин: http://am.rusimport.ru/MsAccess/topic.aspx?id=134

Часто возникают вопросы типа "Почему у меня не работает выражение "select * from [Tbl] where [Date]=#" & me.Дата & "#" (или что то в этом роде).
Чтобы корректно поставить условие по полю типа Date/Time необходимо всего лишь корректно отформатить значение - для Access формат даты должен быть следующим: #mm/dd/yy#. Для SQL-Server это выглядит чуть по-другому: yyyy-mm-dd (такой формат понимается при любых локальных настройках сервера).
Для облегчения можно применять приведенную ниже функцию, например так:
"select * from [Tbl] where [Date]=" & FormatSpDate(me.Дата)

Public Function FormatSpDate(ByVal parDate As Date, Optional bSQL As Boolean = False) As String
If bSQL Then
    FormatSpDate = Format$(parDate, "'mm\.dd\.yyyy'")
    'или можно так
    'FormatSpDate = Format$(parDate, "'yyyy\-mm\-dd'")
Else
    FormatSpDate = Format$(parDate, "\#mm\/dd\/yyyy\#")
End If
End Function 
Назад ToTop
L.E. 22.11.2017
Рейтинг@Mail.ru