Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Обрезать дату / 14 сообщений из 14, страница 1 из 1
29.03.2005, 19:45
    #32987254
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать дату
Добрый день.
Есть дата1:
Код: plaintext
Tue Mar  29   18 : 14 : 09  BST  2005 
Есть дата2:
Код: plaintext
Tue Mar  29   19 : 25 : 09  BST  2005 
Мне нужно получить все даты которые лежат в диапазоне между дата1 и дата2(т.е меньше чем дата2,но больше чем дата 1,т.е. отчет за один день). В базе у меня есть такая дата3(обратите внимание на минуты и секунды):
Код: plaintext
Tue Mar  29   27 : 40 : 09  BST  2005 
. Как видите она у меня не попадает в диапазон,а мне нужно чтобы попала,т.е. нужно как-то обрезать минуты и секунды и сравнивать только с годом и месяцем,так вот,как обрезать?Спасибо.
...
Рейтинг: 0 / 0
29.03.2005, 19:53
    #32987270
Обрезать дату
постановка задачи не ясна
...
Рейтинг: 0 / 0
29.03.2005, 19:55
    #32987272
Обрезать дату
Код: plaintext
1.
2.
select *
from table 
where date between trunc(date1) and trunc(date2+ 1 )
...
Рейтинг: 0 / 0
30.03.2005, 09:09
    #32987729
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать дату
офтопег конечно.

для ms sql server:

Код: plaintext
1.
select convert(datetime, convert(char( 8 ), ftime,  112 )) from mtable

где ftime имеет тип datetime
...
Рейтинг: 0 / 0
30.03.2005, 10:31
    #32987937
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать дату
А.Грасоff™ JEофтопег конечно.

для ms sql server:

Код: plaintext
1.
select convert(datetime, convert(char( 8 ), ftime,  112 )) from mtable

где ftime имеет тип datetime
Прошу прощения,но я не сильно доганяю то,что вы написали.
Что здесь
Код: plaintext
select convert(datetime, convert( char ( 8 ), ftime,  112 )) from mtable
выступает в качестве параметра
Опишу подробнее,что мне нужно получить.
Мне нужно получить все id_job из базы где статус равно 1 и дата лежит между двумя другими датами,которые задаются пользователем,т.е. делаю так:
"SELECT aviatrans.id_job FROM aviatrans WHERE status=1 and aviatrans.data >= ? and aviatrans.data <= ?");
Когда пытаюсь получить отчет за день,то нифига не выдает,т.к. дата из базы не попадает в диапазон,год,месяц,число попадают,а вот минуты и секунды нет,поэтому я не получаю желаемого результата
...
Рейтинг: 0 / 0
30.03.2005, 10:40
    #32987969
GMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать дату
peter6636Опишу подробнее,что мне нужно получить.
Мне нужно получить все id_job из базы где статус равно 1 и дата лежит между двумя другими датами,которые задаются пользователем,т.е. делаю так:
"SELECT aviatrans.id_job FROM aviatrans WHERE status=1 and aviatrans.data >= ? and aviatrans.data <= ?");
Когда пытаюсь получить отчет за день,то нифига не выдает,т.к. дата из базы не попадает в диапазон,год,месяц,число попадают,а вот минуты и секунды нет,поэтому я не получаю желаемого результата
Код: plaintext
1.
SELECT aviatrans.id_job FROM aviatrans WHERE status= 1  and aviatrans.data >= TO_DATE('01.02.2005 00:00:00','DD/MM/YYYY hh24:mi:ss') 
AND aviatrans.data <= TO_DATE('28.02.2005 23:59:59','DD/MM/YYYY hh24:mi:ss')

Это если Oracle.
По моему, вопрос не в тот форум.
...
Рейтинг: 0 / 0
30.03.2005, 10:41
    #32987973
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать дату
Код: plaintext
1.
2.
3.
4.
SELECT aviatrans.id_job
FROM aviatrans 
WHERE status =  1 
  and aviatrans.data >= ? and aviatrans.data <= ?
...
Рейтинг: 0 / 0
30.03.2005, 10:43
    #32987978
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать дату
GMax peter6636Опишу подробнее,что мне нужно получить.
Мне нужно получить все id_job из базы где статус равно 1 и дата лежит между двумя другими датами,которые задаются пользователем,т.е. делаю так:
"SELECT aviatrans.id_job FROM aviatrans WHERE status=1 and aviatrans.data >= ? and aviatrans.data <= ?");
Когда пытаюсь получить отчет за день,то нифига не выдает,т.к. дата из базы не попадает в диапазон,год,месяц,число попадают,а вот минуты и секунды нет,поэтому я не получаю желаемого результата
Код: plaintext
1.
SELECT aviatrans.id_job FROM aviatrans WHERE status= 1  and aviatrans.data >= TO_DATE('01.02.2005 00:00:00','DD/MM/YYYY hh24:mi:ss') 
AND aviatrans.data <= TO_DATE('28.02.2005 23:59:59','DD/MM/YYYY hh24:mi:ss')

Это если Oracle.
По моему, вопрос не в тот форум.
У меня мс sql 7.0
...
Рейтинг: 0 / 0
30.03.2005, 10:43
    #32987981
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать дату
бл?*:!. контрол-энтер сработал.

так?
Код: plaintext
1.
2.
3.
4.
SELECT aviatrans.id_job
FROM aviatrans 
WHERE status =  1 
  and convert(datetime, convert(char( 8 ), aviatrans.data,  112 )) >= ? 
  and convert(datetime, convert(char( 8 ), aviatrans.data,  112 )) <= ?
...
Рейтинг: 0 / 0
30.03.2005, 11:43
    #32988123
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать дату
А.Грасоff™ JEбл?*:!. контрол-энтер сработал.

так?
Код: plaintext
1.
2.
3.
4.
SELECT aviatrans.id_job
FROM aviatrans 
WHERE status =  1 
  and convert(datetime, convert(char( 8 ), aviatrans.data,  112 )) >= ? 
  and convert(datetime, convert(char( 8 ), aviatrans.data,  112 )) <= ?

Подставляемые параметры:
Код: plaintext
1.
2.
дата первая=Tue Mar  29   10 : 39 : 50  BST  2005 
дата вторая=Tue Mar  29   10 : 40 : 01  BST  2005 
Дата со статусом 1 в базе такая,
Код: plaintext
 29 . 03 . 2005   17 : 08 : 00 
,т.е. должен выдавать id_job,а он нифига не выдает
...
Рейтинг: 0 / 0
30.03.2005, 11:48
    #32988137
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать дату
peter6636 А.Грасоff™ JEбл?*:!. контрол-энтер сработал.

так?
Код: plaintext
1.
2.
3.
4.
SELECT aviatrans.id_job
FROM aviatrans 
WHERE status =  1 
  and convert(datetime, convert(char( 8 ), aviatrans.data,  112 )) >= ? 
  and convert(datetime, convert(char( 8 ), aviatrans.data,  112 )) <= ?

Подставляемые параметры:
Код: plaintext
1.
2.
дата первая=Tue Mar  29   10 : 39 : 50  BST  2005 
дата вторая=Tue Mar  29   10 : 40 : 01  BST  2005 
Дата со статусом 1 в базе такая,
Код: plaintext
 29 . 03 . 2005   17 : 08 : 00 
,т.е. должен выдавать id_job,а он нифига не выдает

потому что в результате работы convert даты будут иметь вид:

Код: plaintext
1.
2.
дата первая=Tue Mar  29   00 : 00 : 00  BST  2005 
дата вторая=Tue Mar  29   00 : 00 : 00  BST  2005 

и дата
Код: plaintext
 29 . 03 . 2005   17 : 08 : 00 
в этот диапазон не попадает.
...
Рейтинг: 0 / 0
30.03.2005, 11:48
    #32988138
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать дату
точнее должен был бы выдать,если бы не было минут и секунд мать их
...
Рейтинг: 0 / 0
30.03.2005, 11:52
    #32988150
А.Грасоff™ JE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать дату
peter6636точнее должен был бы выдать,если бы не было минут и секунд мать их
это JAVA-ФОРУМ. если ты хочешь решить это средствами sql - иди
в соотв. форумы. есил jav'ой - можешь глянуть на класс Calendar
...
Рейтинг: 0 / 0
30.03.2005, 11:56
    #32988167
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать дату
А.Грасоff™ JE peter6636 А.Грасоff™ JEбл?*:!. контрол-энтер сработал.

так?
Код: plaintext
1.
2.
3.
4.
SELECT aviatrans.id_job
FROM aviatrans 
WHERE status =  1 
  and convert(datetime, convert(char( 8 ), aviatrans.data,  112 )) >= ? 
  and convert(datetime, convert(char( 8 ), aviatrans.data,  112 )) <= ?

Подставляемые параметры:
Код: plaintext
1.
2.
дата первая=Tue Mar  29   10 : 39 : 50  BST  2005 
дата вторая=Tue Mar  29   10 : 40 : 01  BST  2005 
Дата со статусом 1 в базе такая,
Код: plaintext
 29 . 03 . 2005   17 : 08 : 00 
,т.е. должен выдавать id_job,а он нифига не выдает

потому что в результате работы convert даты будут иметь вид:

Код: plaintext
1.
2.
дата первая=Tue Mar  29   00 : 00 : 00  BST  2005 
дата вторая=Tue Mar  29   00 : 00 : 00  BST  2005 

и дата
Код: plaintext
 29 . 03 . 2005   17 : 08 : 00 
в этот диапазон не попадает.
Ну получается тогда,что перед тем как брать id_job, мне нужно выбрать дату,резонуть у нее минуты и секунда,и только потом уже брать id_job?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Обрезать дату / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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