powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 11.9.2 DateTime???
7 сообщений из 7, страница 1 из 1
ASE 11.9.2 DateTime???
    #35811541
Datetime
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди добрые, подскажите пожайлуста, кто знает.

Следующая проблема:
если в where указать Document.Date = '02.01.2009', то выбирается 37 строк из таблицы,
у которых дата '02.01.2009', хотя на самом деле в таблице более 3ех тысяч
усли же указать
Document.Date > '02.01.2009' and
Document.Date < '03.01.2009', то выводится более 3ех тысяч строк с датой 02.01.2009', хотя логично бы было, чтоб ничего не выдало((

Что не так с datetime? ((
...
Рейтинг: 0 / 0
ASE 11.9.2 DateTime???
    #35811592
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Datetime пишет:

> Что не так с datetime? ((

С ним всё нормально. Hint: в ASE 11 чистой даты как типа данных нет.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE 11.9.2 DateTime???
    #35811614
DateTime
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда вопрос: как тогда корректно отобрать данные за число?
...
Рейтинг: 0 / 0
ASE 11.9.2 DateTime???
    #35811617
DateTime
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DateTimeТогда вопрос: как тогда корректно отобрать данные за число?

convert(datetime,WHD.Date,104) = '02.01.2009' не помогает((
...
Рейтинг: 0 / 0
ASE 11.9.2 DateTime???
    #35811636
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DateTime пишет:

> Тогда вопрос: как тогда корректно отобрать данные за число?

Document.Date >= '02.01.2009' and Document.Date < '03.01.2009'

> convert(datetime,WHD.Date,104) = '02.01.2009'

Расстрелять.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE 11.9.2 DateTime???
    #35811978
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Datetime пишет:

> если в where указать Document.Date = '02.01.2009', то выбирается 37

> Document.Date > '02.01.2009' and
> Document.Date < '03.01.2009', то выводится более 3ех тысяч строк с датой
> 02.01.2009', хотя логично бы было, чтоб ничего не выдало((
>
> Что не так с datetime? ((

Отчасти может помочь это http://www.sql.ru/faq/faq_topic.aspx?fid=300

но главного там нет - дело в том, что в ASE традиционно не было типа данных
DATE, без времени. Появились новые типы без времени только в 15.
Поэтому в старых версиях дата без времени имитировалась датой со временем
"полночь" (все нули).

Поэтому когда вы пишите Document.Date = '02.01.2009', это дата со временем
"полночь". Если вы озаботились ранее, при записи данных, тем, чтобы
обрезать время в данных, хранящихся в ваших таблицах, то этот запрос
вывел бы всё за эту дату. Но видимо этого вы или ваши коллеги не сделали,
поэтому у вас временная часть не обнулена, и запросы с

Document.Date = '02.01.2009',

и

Document.Date > '02.01.2009' and
Document.Date < '03.01.2009'

выдают разные наборы данных.

Выход - либо писать диапазонные запросы, (только один
диапазон должен быть с >= или <=), либо проапдейтить
данные, убрав временную составляющую.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
ASE 11.9.2 DateTime???
    #35812680
lagic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
используй datediff(day,Document.Date, '2009-01-02') = 0
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 11.9.2 DateTime???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]