Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.07.16;
Скачать: [xml.tar.bz2];

Вниз

firebird   Найти похожие ветки 

 
fantasy ©   (2006-06-25 02:31) [0]

Есть база данных. В ней 3 поля: F_NOMER, F_DATE, F_TIME
в таблице T_BILET.
Как выбрать
SELECT * FROM T_BILET
WHERE (F_DATE +  F_TIME) + 3 (часа) > "NOW"
Не получается. Как выбрать SELECT, чтобы отобразились все поля за последние 3 часа?
PS: база данных FIREBIRD 2.0
( не могу рвзобраться с синтаксисом. Помогите собрать запрос)


 
unknown ©   (2006-06-25 03:41) [1]

SELECT * FROM T_BILET
WHERE
EXTRACT (YEAR FROM F_DATE)=EXTRACT (YEAR FROM CURRENT_TIMESTAMP)
AND
EXTRACT (MONTH FROM F_DATE)=EXTRACT (MONTH FROM CURRENT_TIMESTAMP)
AND
EXTRACT (DAY FROM F_DATE)=EXTRACT (DAY FROM CURRENT_TIMESTAMP)
AND
EXTRACT (HOUR FROM F_TIME)>=EXTRACT (HOUR FROM CURRENT_TIMESTAMP)-3


 
unknown ©   (2006-06-25 03:44) [2]

Переборщил. Можно еще проще :)
SELECT * FROM T_BILET
WHERE
F_DATE=CURRENT_DATE AND
EXTRACT (HOUR FROM F_TIME)>=EXTRACT (HOUR FROM CURRENT_TIMESTAMP)-3


 
sniknik ©   (2006-06-25 10:52) [3]

> Переборщил. Можно еще проще :)
можно
SELECT * FROM T_BILET
WHERE (F_DATE+F_TIME+0.0416666666666667*3) > CURRENT_TIMESTAMP

хотя было бы лучше для данного случая хранить датувремя одним полем.

> PS: база данных FIREBIRD 2.0
во втором могли добавить нормальных функция работы с датами... типа как в mssql где вместо "дикого" числа (в примере = час) можно написать DATEADD(hh, 3, F_DATE+F_TIME), смотри в документацию и на сайт, что там добавлено.


 
unknown ©   (2006-06-25 11:02) [4]


> sniknik ©   (25.06.06 10:52) [3]
> во втором могли добавить

Не добавили к сожалению.


 
fantasy ©   (2006-06-25 14:36) [5]

Большое спасибо за поддержку!


 
fantasy ©   (2006-06-25 15:03) [6]

0.0416666666666667 число как вычислить ?
это что на чтоо деленое ?


 
sniknik ©   (2006-06-25 15:35) [7]

> 0.0416666666666667 число как вычислить ?
легко. ;) выполняеш в access(!!!) SELECT cDbl(TimeSerial(1, 0, 0)) готово.
ну или в mssql SELECT CAST(DATEADD(hh, 1, 0) AS Float)  аналогично.
(в дату забивается час и выдается в числовом представлении)

ну не знаю я как в firebird с датами нормально работать ;о)).

> это что на чтоо деленое ?
1 на 24 как ни странно... ;о))


 
Fantasy ©   (2006-06-25 18:29) [8]

Спосибо мастера!



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.07.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
2-1151385632
xZorg
2006-06-27 09:20
2006.07.16
Socket s


8-1138977807
maximmsm
2006-02-03 17:43
2006.07.16
Как вытащить информацию из EXIF?


2-1151658794
fast2
2006-06-30 13:13
2006.07.16
Как перевести строку (типа String) в последовательность...


8-1137709538
Nailspb
2006-01-20 01:25
2006.07.16
Drag & Drop


15-1150233774
Piter
2006-06-14 01:22
2006.07.16
Посоветуйте как рисовать блок-схемы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский