|
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 37
|
|
SQL-запрос к этому полю типа 'SELECT * FROM [файл] WHERE [поле типа дата] > [26.10.2010, 17:38. Показов 4705. Ответов 6
Метки нет (Все метки)
Суть проблемы:
Есть база, созданная средствами VB (Visual Data Manager) в Access формате. В ней есть поле типа Data/Time. Так вот, SQL-запрос к этому полю типа 'SELECT * FROM [файл] WHERE [поле типа дата] > [переменная с датой]' выдает ошибку несовместимости типов данных. Пробовал строковые переменные, отформатированные под дату, пробовал переменные с типом Date, с кавычками и без них - не помогает. Помогите!
0
|
|
| 26.10.2010, 17:38 | |
|
Ответы с готовыми решениями:
6
Фильтрация таблицы по полю типа дата Выборка по полю типа дата/время Как реализовать на C# запрос типа SELECT ... WHERE col IN (SELECT ...) |
|
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
|
|
| 26.10.2010, 17:58 | |
|
Winda то небось Русская?:-) Да и офис тоже небось русский? :-))
Не совпадают форматы дат в запросах и в офисе. Чтобы сравнить дату в SQL запросе она должна быть американского стандарту 'месяц/число/год'. Вот держи функцию, которую я лет пять назад написал, перед запросом переделывай дату при помощи этой функции: 'Стандарт получаемой даты в самом верху модуля тип поставь Public Enum dfDateFormat dfRU = 0 'Русский вариант dfEN = 1 'Английский вариант End Enum 'Конвертирует Даты в Руский или Английский стандарт 'В случае ошибки возвращает пустую строку; при успешном выполнении дату нужного стандарта как строковую переменную 'dfOutFormat это в каком варианте тебе вернуть дату в строке dfEn английский Public Function Convert_Date_RU_EN(dtDate As Variant, dfOutFormat As dfDateFormat) As String Dim strDT As String On Error GoTo ErrD strDT = CStr(dtDate) If InStr(strDT, '.') <> 0 Then Select Case dfOutFormat Case 0 'Русский strDT = Mid(strDT, InStr(strDT, '.') + 1, InStrRev(strDT, '.') - InStr(strDT, '.') - 1) & '.' & Left(strDT, InStr(strDT, '.') - 1) & '.' & Mid(strDT, InStrRev(strDT, '.') + 1) Case 1 'Английский strDT = Mid(strDT, InStr(strDT, '.') + 1, InStrRev(strDT, '.') - InStr(strDT, '.') - 1) & '/' & Left(strDT, InStr(strDT, '.') - 1) & '/' & Mid(strDT, InStrRev(strDT, '.') + 1) End Select Convert_Date_RU_EN = strDT ElseIf InStr(strDT, '/') <> 0 Then Select Case dfOutFormat Case 0 'Русский strDT = Mid(strDT, InStr(strDT, '/') + 1, InStrRev(strDT, '/') - InStr(strDT, '/') - 1) & '.' & Left(strDT, InStr(strDT, '/') - 1) & '.' & Mid(strDT, InStrRev(strDT, '/') + 1) Case 1 'Английский strDT = Mid(strDT, InStr(strDT, '/') + 1, InStrRev(strDT, '/') - InStr(strDT, '/') - 1) & '/' & Left(strDT, InStr(strDT, '/') - 1) & '/' & Mid(strDT, InStrRev(strDT, '/') + 1) End Select Convert_Date_RU_EN = strDT Else Convert_Date_RU_EN = '' End If Exit Function ErrD: Convert_Date_RU_EN = '' Exit Function End Function
0
|
|
|
1 / 1 / 0
Регистрация: 25.05.2008
Сообщений: 232
|
|
| 26.10.2010, 17:58 | |
|
попробуй заключить дату в ##
#21/12/2001# И может быть надо сделать американский формат mm/dd/yyyy. А вообще лучше приведи код
0
|
|
|
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 37
|
|
| 26.10.2010, 18:33 [ТС] | |
|
Спасибо, но просто американский формат пока не помог.
А код примерно такой: Data1 - поле базы данных типа Date/Time Dim Data2 as string (или as Date) Data1 = DTPicker.Value .... .Open ('SELECT * FROM File WHERE Data1 >= '' & Дата2 & ''') или .Open ('SELECT * FROM File WHERE Data1 >= '' & _ Format(Дата2,'dd.mm.yy') & ''') или .Open ('SELECT * FROM File WHERE Data1 >= '' & _ Format(Дата2,'mm.dd.yy') & ''')
0
|
|
|
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
|
|
| 26.10.2010, 18:47 | |
|
Опять же те же грабли лабызаешь! Тебе же сказали АМЕРИКАНСКИЙ формат, а ты что делаешь: Format(Дата2,'mm.dd.yy') какие точки в английском формате там слэши '/'.
И на счет Data1=DTPicker.Value это же поле в базе, наверное ты описку допустил? Запрос выглядит так: Dim Data2 as Date Dim Data3 AS String Data2 = DTPicker.Value Data3 = Convert_Date_RU_EN(Data2, dfEN) теперь Data3='8/18/2004' это сегодня Open ('SELECT * FROM File WHERE Data1>=#' & Data3 & '#')
0
|
|
|
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 37
|
|
| 26.10.2010, 18:52 [ТС] | |
|
Да, про Data1 это описка конечно.
Щас попробую со слешами
0
|
|
|
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 37
|
|
| 27.10.2010, 12:33 [ТС] | |
|
Парни, спасибо! Заработало!
Работает только если заключить переменную в решетки (##). Никогда б не догадался )
0
|
|
| 27.10.2010, 12:33 | |
|
Помогаю со студенческими работами здесь
7
Фильтр поле типа Дата
Запрос на обновление посредством SET поле=(select....) Запрос к полю типа text возвращает Null Как в поле типа дата время записать пустоту? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|