Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];




Вниз

SQL 


roman001   (2002-01-05 21:15) [0]

Господа, подскажите есть ли в стандартном SQL (для TQuery)
какие-нибудь функции работы с датами, как например выделить
день, год,...



roottim   (2002-01-06 14:13) [1]

вообще говоря это не дело стандарта sql
такое делается либо сторедами... как дополнение
либо просто пользуйся апи!
например такой функцией.... вообщем см нелп по нему
int GetDayFromDate(LPSTR szDate);



Anatoly Podgoretsky   (2002-01-06 15:56) [2]

Начнем с того, какая база?
Или какой стандарт ты имеешь ввиду, их более одного.
Например в SQL-92 есть функция Extract.



Romul   (2002-01-06 17:20) [3]

В СКЛ хрен знает, а в Delphi DecodeDate(Date:TdateTime; Year:Word; Month:Word; Day:Word); Пишу на память поэтому посмотри Хэлп. Спроси конкретнее, я вот например MSSQL2000 юзаю поэтому почти все глюки при работе с датами знаю.



roman001   (2002-01-06 17:49) [4]

Например, для сервера MySQL запрос "SELECT YEAR(поле типа DATE) FROM Таблица" вытаскивает год из даты. Можно ли сделать
подобный запрос для обычной парадоксовской базы uses TQuery, такой же запрос здесь НЕ срабатывает?
Extract???



Romul   (2002-01-06 18:10) [5]

Так нет, погоди, если в Query написать запрос типа
ADOQuery.SQL.Add("Select Year(WorkTill) from tratata where...");
то все работает так как тебе и надо, а с Paradox х.з.



roman001   (2002-01-07 19:53) [6]

Спасибо, буду думать



Павел Козловский   (2002-01-07 22:24) [7]

В Парадоксе пишем так:
Год: SELECT EXTRACT(YEAR FROM MyTable."Mydate") AS YYYY FROM MyTable
Месяц: SELECT EXTRACT(MONTH FROM MyTable."Mydate") AS MM FROM MyTable
Ну а день: SELECT EXTRACT(DAY FROM MyTable."Mydate") AS DD FROM MyTable



panov   (2002-01-08 07:22) [8]

roman001 (05.01.02 21:15)
В стандарте SQL вроде как таких функций нет,
Но ты всегда можешь работать с ними уже на стороне приложения, не задумываясь, как хранятся даты в БД.
Поле Date есть, как правило, во всех БД, а вот с Time проблемы.
По крайней мере, я знаю один такой формат - DBF.

Поэтому, если программу нужно спроектировать под начально неизвестный тип БД, то лучше всего (по моему мнению) использовать под хранение даты и времени символьные поля.

Например,
20011229082233



Anatoly Podgoretsky   (2002-01-08 08:05) [9]

panov © (08.01.02 07:22)
"В стандарте SQL вроде как таких функций нет,"

SQL-92



panov   (2002-01-08 08:19) [10]

>Anatoly Podgoretsky © (08.01.02 08:05)
Возможно, но не все реализации СУБД поддерживают такой тип даных как Date.
>roman001 (05.01.02 21:15)

Рекомендую почитать:
http://klariosha.kemtel.ru/DOC/OSBD/contents.htm
"Основы современных баз данных"
С.Д. Кузнецов, информационно-аналитические материалы
Центра Информационных Технологий




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.023 c
1-8909            ilg                   2002-01-17 13:15  2002.02.04  
Есть ли у панели канва?


3-8757            kopelev               2001-12-27 11:10  2002.02.04  
Как переиндексировать dbf ?


1-8827            SelfDestructor        2002-01-18 19:53  2002.02.04  
Как сделать страницу в PageControl невидимой


3-8780            tovSuhov              2002-01-05 10:55  2002.02.04  
Подскажите, где достать хелп по языку PL/SQL...


1-8876            NLO                   2002-01-15 06:35  2002.02.04  
Загрузить иконку зарегистрированного расширения в ImageList