Строю запрос из delphi c помощью компонент PSQL (v 2.5.1)
select * from telegram where id_excav=2 and dt_send BETWEEN '13.05.2009' and '13.05.2009'
PSQLDATABAS.params
ConnectionTimeout=15
Port=5432
SSLMode=prefer
DatabaseName=+++++
UID=postgres
PWD=++++++
Host=localhost
сервер на WinXP
Региональные параметры даты DD.MM.YYYY
PostgreSQL configuration file
datestyle = 'sql, dmy'
lc_messages = 'Russian_Russia.1251' # locale for system error message
lc_monetary = 'Russian_Russia.1251' # locale for monetary formatting
lc_numeric = 'Russian_Russia.1251' # locale for number formatting
lc_time = 'Russian_Russia.1251' # locale for time formatting
выдает ошибку date/time field out of range
после изменения запроса на
select * from telegram where id_excav=2 and dt_send BETWEEN '2009.05.13' and '2009.05.13'
Все ок
Помогите избавится от ошибки
Установите корректные
Установите корректные настройки datestyle.
Это можно сделать либо на лету через SET (http://postgresql.ru.net/manual/sql-set.html), либо в postgresql.conf (параметр datestyle). Какой конкретно стиль выбрать смотрите в документации.
datestyle = 'sql, dmy'
datestyle = 'sql, dmy' а это не корректно?
или я чего то не понимаю
где лучше это делать не сервере или локально?
Как лучше - решать вам. Если
Как лучше - решать вам. Если вы точно знаете, что никому другому не будет нужен другой формат даты и времени и уверены в том, что перенастройка сервера не составит проблем в будущем - используйте настройки в конфиге. Если же рядом с вами работают и другие люди, которым может потребоваться другой формат даты, а также если вы понесёте программу на другой сервер, где эти настройки в конфге делать проблематично, то лучше SET.
Какие значения корректны, а какие нет написано в документации.
makon=# show
makon=# show datestyle
makon-# ;
DateStyle
-----------
ISO, DMY
(1 запись)
Все правильно вроде?
'13.05.2009' -ошибка
'2009.05.13'- так проходит
Делаю: tmp=# show
Делаю:
Никаких ошибок не наблюдаю.
Я нашел причину применяемый
Я нашел причину применяемый компонент виноват