Intereting Posts
Каким будет лучший способ сохранить порядок записей в SQL? Как создать запрос кросс-таблицы Access с итоговыми значениями для столбцов И строк? Может кто-нибудь помочь объяснить, почему не использовать SQL JOIN – это плохая практика и неправильная? SQL Server – копирование хранимых процедур из одной базы данных в другую Рекурсия Sql без рекурсии API или инструменты для преобразования SQL (запросы SELECT) в XML FORM Oracle PL / SQL, как рассчитать возраст с даты рождения с помощью простой переменной замещения и months_between Отдельный столбец SQL разделен на несколько столбцов Итерационный список объектов в Ибатисе дизайн таблицы + SQL-запрос SQL-сортировка не соответствует команде group by, всегда использует первичный ключ Используя MySql, могу ли я отсортировать столбец, но с последним 0? MS Access, запрос обновления не будет обновлять связанную таблицу Обновить столбец со случайным значением Предоставить привилегии для конкретной базы данных в PostgreSQL

Преобразование строки в Date в запросе на доступ к MS Access

Я использую tyring для извлечения данных из моей таблицы доступа на основе столбца Date, требование – отображать все, что больше определенного значения

Я пытаюсь передать мое значение, которое является строкой, используя функцию Format & CDate с типом даты, которая выбрасывается как Overflow.

Вот запрос:

Select * from Events Where Events.[Date] > cDate(Format("20130423014854","yyyy-MM-dd hh:mm:ss")) 

Пример Дата записи Значение из таблицы: 2013-04-23 13: 48: 54,0

События. [Дата] – это поле Тип даты / времени в доступе.

Как я могу это исправить ?

Используйте функцию DateValue для преобразования строки на дату. Это самый простой способ сделать это.

DateValue (String Date)

В разделе «Доступ» нажмите « Create > Module и вставьте следующий код

 Public Function ConvertMyStringToDateTime(strIn As String) As Date ConvertMyStringToDateTime = CDate( _ Mid(strIn, 1, 4) & "-" & Mid(strIn, 5, 2) & "-" & Mid(strIn, 7, 2) & " " & _ Mid(strIn, 9, 2) & ":" & Mid(strIn, 11, 2) & ":" & Mid(strIn, 13, 2)) End Function 

Нажмите Ctrl + S и сохраните модуль как modDateConversion .

Теперь попробуйте использовать запрос типа

 Select * from Events Where Events.[Date] > ConvertMyStringToDateTime("20130423014854") 

— Редактировать —

Альтернативное решение, исключающее пользовательскую функцию VBA:

 SELECT * FROM Events WHERE Format(Events.[Date],'yyyyMMddHhNnSs') > '20130423014854' 

В принципе, это не сработает

 Format("20130423014854","yyyy-MM-dd hh:mm:ss") 

функция формата будет работать, только если ваша строка имеет правильный формат

 Format (#17/04/2004#, "yyyy/mm/dd") 

И вам нужно указать, какой тип поля [Date] есть? потому что я не могу поместить это значение 2013-04-23 13: 48: 54.0 под полем «Дата рождения» (я использую MS access2007 btw). Возможно, вам захочется просмотреть эту дату выбора темы между

 cdate(Format([Datum im Format DDMMYYYY],'##/##/####') ) 

преобразует строку без знаков препинания в дату

Если вам нужно отобразить все записи после 2014-09-01, добавьте это в свой запрос:

 SELECT * FROM Events WHERE Format(Events.DATE_TIME,'yyyy-MM-dd hh:mm:ss') >= Format("2014-09-01 00:00:00","yyyy-MM-dd hh:mm:ss")