|
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 37
|
|
SQL-запрос к этому полю типа 'SELECT * FROM [файл] WHERE [поле типа дата] > [26.10.2010, 17:38. Показов 4684. Ответов 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 Как в поле типа дата время записать пустоту? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|