Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / sybase datetime помогите. / 17 сообщений из 17, страница 1 из 1
09.02.2006, 11:37
    #33533476
MoHaX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
Такая ситуация, в sybase базе есть табличка, в которой есть поле 'date' c информацией типа '03.02.2006 13:00:00'. Я хочу выбрать все записи в определённый промежуток времени.
Пишу:
Код: plaintext
select * from TABLE where date>='01-FEB-2006' AND date<'04-FEB-2006'

И всё нормально, выбирает то, что надо. Но мне удобней было бы вместо '01-FEB-2006' писать '01.02.2006'. Если я так пишу, то ничего вообще не выбирается. Как-то можно решить эту промблему?

P.S. Я не программист, нужда заставляет. Сильно не пинайте.
...
Рейтинг: 0 / 0
09.02.2006, 11:45
    #33533522
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
У Sybase есть функция конвертирования данных, где дату можно конвертировать по указанному формату:
Код: plaintext
SELECT CONVERT(datetime, '31.01.2006',  104 )
где 104 в BOL на эту функцию описывется, как формат "dd.mm.yyyy". Это в ASA, в ASE может быть другой номер формата.
...
Рейтинг: 0 / 0
09.02.2006, 11:57
    #33533586
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
Для начала почитай FAQ форума (там есть про это немного).

Еще прочитай про like на данные типа DATETIME.

И я бы вообще не заморачивался а писал бы дату в формате YYYYMMDD:
between '20060201' and '20060204'

Ну и FAQ, там я писал достаточно подробно про это . Будет еще вопросы - пиши.
...
Рейтинг: 0 / 0
09.02.2006, 11:58
    #33533588
MoHaX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
Не могли бы вы показать мне как это использовать в моём вышеуказанном запросе на примере?
...
Рейтинг: 0 / 0
09.02.2006, 12:27
    #33533758
Александр Гoлдун
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
MoHaX пишет:

> И всё нормально, выбирает то, что надо. Но мне удобней было бы вместо
> '01-FEB-2006' писать '01.02.2006'. Если я так пишу, то ничего вообще не
> выбирается. Как-то можно решить эту промблему?
>
> P.S. Я не программист, нужда заставляет. Сильно не пинайте.

Может все-таки есть смысл попинать программиста, чтоб удовлетворил эту
нужду? Или привыкнуть, что по-умолчанию формат год-месяц-день и набирать
'2006-02-01'. В чем неудобство такого варианта, кроме непривычности?
Количество нажатий клавиш идентичное. Это всяко проще чем использовать в
запросе функции конвертирования.

Либо, как я уже сказал, обратиться к программисту для получения удобного
инструментария.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
09.02.2006, 12:29
    #33533770
MoHaX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
MasterZivДля начала почитай FAQ форума (там есть про это немного).

Еще прочитай про like на данные типа DATETIME.

И я бы вообще не заморачивался а писал бы дату в формате YYYYMMDD:
between '20060201' and '20060204'

Ну и FAQ, там я писал достаточно подробно про это . Будет еще вопросы - пиши.
Всё дело в том, что я не пишу. Пишет туда программа, которую я изменить не могу. Я могу тока подцепиться к базе и выбрать нужные мне данные. ФАК почитал. Идею понял. Как реализовать не догадался. Помогите товарисчи.
...
Рейтинг: 0 / 0
09.02.2006, 13:13
    #33533977
sybase datetime помогите.
авторПишет туда программа, которую я изменить не могу

так какая разница - запрос-то Вы пишете. И если там datetime - то можно использовать любой рекомендованный способ. Мне так лично вообще нравится '2006-02-09'
...
Рейтинг: 0 / 0
09.02.2006, 14:22
    #33534310
В.Татьяна
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
select * from TABLE where date>select convert(varchar(10),'01.02.2006',104) and convert(varchar(10),'04.02.2006',104)
...
Рейтинг: 0 / 0
09.02.2006, 15:25
    #33534581
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
в последнем примере есть ошибки.
хотели вероятно так:

Код: plaintext
1.
2.
3.
select * from TABLE where 
date > convert(datetime,'01.02.2006',104) and  
date < convert(datetime,'04.02.2006',104)
...
Рейтинг: 0 / 0
09.02.2006, 22:20
    #33535581
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
MoHaXНе могли бы вы показать мне как это использовать в моём вышеуказанном запросе на примере?

Что использовать ?
...
Рейтинг: 0 / 0
09.02.2006, 22:22
    #33535584
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
В.Татьянаselect * from TABLE where date>select convert(varchar(10),'01.02.2006',104) and convert(varchar(10),'04.02.2006',104)

Это неправильный запрос.
...
Рейтинг: 0 / 0
10.02.2006, 08:58
    #33535966
golsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
select * from TABLE where date>='2006-FEB-01' AND date<'2006-FEB-04'

или
select * from TABLE where date>='01-FEB-2006' AND date<'04-FEB-2006'

или формат ГГГГММДД
select * from TABLE where date>='20060201' AND date<'20060204'

или формат ГГГГ-ММ-ДД
select * from TABLE where date>='2006-02-01' AND date<'2006-02-04'

или формат ММ.ДД.ГГГГ
select * from TABLE where date>='02.01.2006' AND date<'02.04.2006'

или формат ММ-ДД-ГГГГ
select * from TABLE where date>='02-01-2006' AND date<'02-04-2006'

выбирайте что больше нравится.
Во всех примерах одни и теже даты: с 1 по 4 февраля 2006 года
...
Рейтинг: 0 / 0
10.02.2006, 10:54
    #33536362
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
set dateformat dmy
go

ну и потом ваш запрос.
...
Рейтинг: 0 / 0
06.12.2006, 15:14
    #34180758
eao
eao
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
Возни вопрос, связанный с отображением даты
(используем ASE 12.5)

делаем

time_begin - datetime

select time_begin from test
Возвращает в формате
Dec 7 2006 1:07PM

можно ли как-то на уровне сервера или клиента указать,
чтобы дата возвращалась в следующем формате без
использования convert

06-12-2006 15:09:23
(dd-mm-yyyy hh:mm:ss)
...
Рейтинг: 0 / 0
06.12.2006, 15:16
    #34180766
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
eao wrote:

> select time_begin from test
> Возвращает в формате

Оно ни в каком формате не возвращает ;). Это твой клиент так отображает.
Поменяй в нём формат.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
06.12.2006, 15:26
    #34180819
eao
eao
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
Используеи например isql стандартный, который идет
вместе с sybase под linux

1> select time_begin from test where id = 5500965
2> go
time_begin
--------------------------
Dec 6 2006 1:56PM

(1 row affected)
1>


Как указать чтобы дата вернулась

06-12-2006 13:56:05
...
Рейтинг: 0 / 0
06.12.2006, 16:04
    #34181001
advantage
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sybase datetime помогите.
у isql нет параметров форматирования даты.
если тебе надо это сделать то используй convert

на клиентах (обычно) дату вытаскивают в виде даты а не в виде строки и при отображении форматируют как надо
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / sybase datetime помогите. / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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