Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2008, 06:36   #1
Ash
Пользователь
 
Аватар для Ash
 
Регистрация: 27.10.2008
Сообщений: 45
По умолчанию SQL

В каком виде в SQL-запросе пишутся константы типа дата? а точнее, нужно-то дата-время?
Ash вне форума Ответить с цитированием
Старый 06.12.2008, 19:05   #2
Ash
Пользователь
 
Аватар для Ash
 
Регистрация: 27.10.2008
Сообщений: 45
По умолчанию

Что нет поблизости крутых эскуэльщиков? Меня интересует можно ли задать запрос в таком виде: ...where DT between 12.02.08 12:00 and 13.02.09 13:00 (время очень принципиально) или кавычки нужны или ваще никак?
Ash вне форума Ответить с цитированием
Старый 06.12.2008, 22:23   #3
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

Помойму там надо поставить " # " , вначале и вконце ... Во всяком случае в Акцесе так .... =) Пример
.... Between #12.02.2007 12:00:00# And #13.02.2008 13:00:00#; Попробуй ..
Skype : UASm1Le.
Sm1Le вне форума Ответить с цитированием
Старый 06.12.2008, 23:38   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Ash Посмотреть сообщение
В каком виде в SQL-запросе пишутся константы типа дата? а точнее, нужно-то дата-время?
Дело в том, что формат представления (внешнего, а не внутреннего) данных типа DateTime в разных СУБД отличается, поэтому люди и не торопятся вам отвечать.
Ситуация похожа на "А чо у меня с двигателем?" без указания марки авто.
Общий ответ - попробуйте использовать значение DateTime в оригинале (число с плавающей запятой), а не в отформатированном виде (как у вас), а в запрос вставлять его в виде DateTimeToStr (function).
В этом случае встроенный SQL-интерпретатор сам преобразует его к нужному виду.
mihali4 вне форума Ответить с цитированием
Старый 07.12.2008, 16:45   #5
Mitriy08
Пользователь
 
Регистрация: 11.07.2008
Сообщений: 91
По умолчанию

Цитата:
Сообщение от Ash Посмотреть сообщение
Что нет поблизости крутых эскуэльщиков? Меня интересует можно ли задать запрос в таком виде: ...where DT between 12.02.08 12:00 and 13.02.09 13:00 (время очень принципиально) или кавычки нужны или ваще никак?
Дата должна писаться в кавычках!

Код:
Select * From MyTable where MyDate Between '12.02.08 12:00' AND
'13.02.09 13:00'
А чтобы не заморачиваться с датой как ее передавать лучше всего использовать SQL функцию convert

Код:
Select * From MyTable where MyDate Between convert(datetime,'12.02.08 12:00',104) AND
convert(datetime,'13.02.09 13:00',104)
Mitriy08 вне форума Ответить с цитированием
Старый 26.01.2009, 01:29   #6
crc83
Пользователь
 
Аватар для crc83
 
Регистрация: 24.01.2009
Сообщений: 38
По умолчанию

Формат дати для Access
#12/02/2007#
и персонально для mihali4:Внимательно читай вопрос и не вымахивайся это некрасиво
crc83 вне форума Ответить с цитированием
Старый 26.01.2009, 09:14   #7
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

используйте параметры и проблем не будет
и не надо никаких кавычек и шорпов
dron-s вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
sql или не sql Diamand SQL, базы данных 9 18.09.2008 17:17
Запросы SQL и PL/SQL sharpest Фриланс 1 05.02.2008 18:58
SQL Abbatik БД в Delphi 2 28.01.2008 11:18
SQL frai БД в Delphi 4 08.10.2007 14:00
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15