Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-1204880113
monk
2008-03-07 11:55
2008.12.21
инициализировать объект при переходе по вкладке


15-1224769798
Markus13
2008-10-23 17:49
2008.12.21
Передача файла по инету на определенный IP


1-1204827510
wild
2008-03-06 21:18
2008.12.21
Гибрид StringGrid и ComboBox


2-1226438665
АлексейН
2008-11-12 00:24
2008.12.21
чтение из столбцов


2-1225841336
Семен Кевларвестов
2008-11-05 02:28
2008.12.21
Не срабатывает кейсоинсенситивность в tDataSet.Locate





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский