Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.12.21;
Скачать: CL | DM;

Вниз

Дата/ДатаВремя в SQL запросах БД Access   Найти похожие ветки 

 
Dmitry_177   (2008-05-27 15:44) [0]

как правильно задавать Дату и ДатуВремя в SQL запросах в Access? К БД подключаюсь при помощи ADO.. Не понятно мне вот что: При добавлении новой записи в таблицу, я делаю так:

Дата:

INSERT INTO table (t_date)
         VALUE ("27.10.2008")


ДатаВремя:

INSERT INTO table (t_datetime)
         VALUE ("27.10.2008 21:30:00")


Вобщем формат Даты и ДатыВремени такой.. И все работает..

А вот если нужно сравнить дату, например:

SELECT *
FROM table
WHERE table.t_datetime = "27.10.2008 21:30:00"


то уже возникает ошибка..


 
Stas ©   (2008-05-27 15:45) [1]

#27.10.2008 21:30:00# помоему так...


 
MsGuns ©   (2008-05-27 15:55) [2]

Использовать параметрические запросы


 
Anatoly Podgoretsky ©   (2008-05-27 15:58) [3]

> MsGuns  (27.05.2008 15:55:02)  [2]

Бесполезно сравнивать числа с плавающей запятой на абсолютную точность.


 
MsGuns ©   (2008-05-27 16:07) [4]

>Anatoly Podgoretsky ©   (27.05.08 15:58) [3]
>Бесполезно сравнивать числа с плавающей запятой на абсолютную точность.

А причем здесь "числа с плавающей запятой" ?


 
Dmitry_177   (2008-05-27 16:19) [5]


> #27.10.2008 21:30:00# помоему так...


почти ))

#27/10/2008#

только не понятно еще, где-то накопал в интернете что нужно так: месяц/день/год хотя работает как я написал.. непонятно что-то..


 
Anatoly Podgoretsky ©   (2008-05-27 16:23) [6]

> MsGuns  (27.05.2008 16:07:04)  [4]

А в Акцесс хранится именно в этом формате, совпадает с TDateTime


 
MsGuns ©   (2008-05-27 16:40) [7]

>Dmitry_177   (27.05.08 16:19) [5]
>где-то накопал в интернете что нужно так: месяц/день/год хотя работает как я написал.. непонятно что-то..

Так не нужно.


 
palva ©   (2008-05-27 16:48) [8]

По правилам нужно так #месяц/день/год#
Если Access обнаруживает, что дата невалидная он пробует поменять местами месяц и день.


 
Anatoly Podgoretsky ©   (2008-05-27 16:52) [9]

> palva  (27.05.2008 16:48:08)  [8]

Когда меняет не страшно, страшно когда не меняет и ничего не говорит.


 
Dmitry_177   (2008-05-27 17:05) [10]

хм.. тут наверно может быть тогда ошибка..(((

вот к примеру наша дата 27.10.2008.. 27-го меся не бывает, поэтому меняет местами и все ок.. а будет такая 12.10.2008 дата? Access запишет ее как 12 октября или 10 декабря?


 
palva ©   (2008-05-27 18:27) [11]


> Access запишет ее как 12 октября или 10 декабря?

Вы хотите, чтобы мы для вас попробовали?


 
Anatoly Podgoretsky ©   (2008-05-27 21:44) [12]

Пусть сначала моральный ущерб оплатит.


 
Правильный_Вася   (2008-05-27 22:21) [13]

использовать параметры в запросах
тогда никаких многозначностей не будет


 
Dmitry_177   (2008-05-28 11:14) [14]

Еще вопрос.. А как сравнить ДатаВремя с Датой?

т.е. есть:

ДатаВремя - 27.10.2008 21:30:00
и Дата - 27.10.2008

вот нужно сравнить только дату, попробовал сделать так:

SELECT * FROM table
WHERE t_datetime = #27/10/2008#


не сравнивается.. помогите


 
Правильный_Вася   (2008-05-28 11:32) [15]

BETWEEN


 
Dmitry_177   (2008-05-28 11:39) [16]

SELECT * FROM table
WHERE t_datetime BETWEEN (#27/10/2008 00:00:00#, #27/10/2008 23:59:59#)


?


 
Dmitry_177   (2008-05-28 11:40) [17]

т.е. так:
SELECT * FROM table
WHERE t_datetime BETWEEN #27/10/2008 00:00:00# AND #27/10/2008 23:59:59#


?


 
DiamondShark ©   (2008-05-28 14:19) [18]


> т.е. так:
> SELECT * FROM table
> WHERE t_datetime BETWEEN #27/10/2008 00:00:00# AND #27/10/2008
> 23:59:59#

Лучше так:
WHERE t_datetime >= #27/10/2008 00:00:00# AND t_datetime < #28/10/2008 00:00:00#


 
Dmitry_177   (2008-05-28 23:59) [19]

А при добавлении записи:

INSERT INTO table (t_datetime)
        VALUE ("27.10.2008 21:30:00")


правильней будет тоже месяц/день/год ?


 
Palladin ©   (2008-05-29 07:58) [20]

правильней (относительно) будет

q.SQL.Text:="insert into table (t_datetime) values (:PDateTime)";
q.Parameters.ParamByName("PDateTime").Value:=Date;
q.ExecSQL;


ну или то, что предложит sniknik :), но с тем же подходом с параметром...


 
Anatoly Podgoretsky ©   (2008-05-29 16:50) [21]

> Dmitry_177  (28.05.2008 11:40:17)  [17]

Это не дает гарантии, что в условие попадут все записи за 27,10,2008 более того в текстовом виде вообще возможны разные сюрпризы.



Страницы: 1 вся ветка

Текущий архив: 2008.12.21;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.02 c
11-1193584312
Danger
2007-10-28 18:11
2008.12.21
Подправить MCKmdvPanel.pas


2-1226645549
Sergey
2008-11-14 09:52
2008.12.21
Помогите пожалуйста с сервисом!


2-1226161946
Надуев Алексей
2008-11-08 19:32
2008.12.21
WebBrowser


4-1197385902
dest81
2007-12-11 18:11
2008.12.21
GetVolumeInformation


4-1202468771
GanibalLector
2008-02-08 14:06
2008.12.21
TAPI(Error 80000018)