Форум: "Базы";
Текущий архив: 2008.12.21;
Скачать: [xml.tar.bz2];
ВнизДата/ДатаВремя в 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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.102 c