|
0 / 0 / 0
Регистрация: 26.10.2010
Сообщений: 37
|
|
SQL-запрос к этому полю типа 'SELECT * FROM [файл] WHERE [поле типа дата] > [26.10.2010, 17:38. Показов 4726. Ответов 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 Как в поле типа дата время записать пустоту? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|