Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.02;
Скачать: CL | DM;

Вниз

Стринг - Дата - Максимальное значение.   Найти похожие ветки 

 
Chery   (2004-12-02 14:15) [0]

Есть стринговое поле S, в котором в формате стринг записаны даты (дд.мм.гггг). Как мне найти максимальную дату? Неужели на клиенте создавать цикл (While) переводить в формат datetime и искать макс.? Как это сделать фильтром?


 
Александр Иванов ©   (2004-12-02 14:24) [1]

SELECT MAX(CAST(S AS DATE)) FROM TAB


 
Chery   (2004-12-02 14:44) [2]

S - это имя моего стрингового поля? Если да, то у меня в MySQL не работает.


 
Виталий Панасенко   (2004-12-02 14:47) [3]

Значит узнай, как в MySQL конвертировать один тип в другой


 
Chery   (2004-12-02 15:38) [4]

Чувствую никак... там много чего не работает...
А как профильтровать на клиенте? (записей в табл. не много).


 
Александр Иванов ©   (2004-12-02 15:45) [5]

А посмотреть предыдущие ветки?
http://delphimaster.net/view/3-1101976169/


 
Chery   (2004-12-02 16:04) [6]

Что значит Date_Format? В СКЛ? Сорри за непонимание.


 
Александр Иванов ©   (2004-12-02 16:36) [7]

DATE_FORMAT(date,format)
Formats the date value according to the format string.

http://dev.mysql.com/doc/mysql/en/Date_and_time_functions.html

Там вообще много интерсного.


 
Chery   (2004-12-03 11:10) [8]

Хорошо, спасибо.
Но по ходу появился такой вопрос:
Если у меня поле в MySQL - DateTime.
А на клиенте я делаю
ClientDataSet1.Insert;
ClientDataSet1.Fields[0].AsDateTime:= Now;
ClientDataSet1.Post;
ClientDataSet1.ApplyUpdates(-1);
А на сервере в UpdateSQL1:
insert into Dat
 (dat1)
values
 (:dat1)
То дата не добавляется. Ошибки не выдает, просто не апдейтит. В доках http://dev.mysql.com/doc/mysql/en/Date_and_time_functions.html
Приведен пример: mysql_query("INSERT INTO CALENDAR SET date=date_add(now(),INTERVAL  LAST_INSERT_ID() DAY)");
Но это я так понимаю для PHP и т.п.
Как быть?


 
Александр Иванов ©   (2004-12-03 11:33) [9]

Этот пример не для РНР.

Возможет такой вариант:
update table1 set Date1 = Now()
Только нужно не забывать, что текущее время вставится сервера.


 
Chery   (2004-12-03 12:27) [10]

Значит тут такое дело:
Из: http://dev.mysql.com/doc/mysql/ru/Loading_tables.html
"Обратите внимание на то, что здесь строковые выражения и даты представлены в виде ограниченных кавычками строк."
Вот это работает:
INSERT INTO Dat
VALUES ("2003.11.09");

Значит по идее мне надо передать Строку? Я не совсем понимаю.
В FieldDefs указываю ftString на поле даты. На клиенте:ClientDataSet2.Fields[0].AsString:= DateTimeToStr(Date);
Сервер в UpdateSQL1 без изменений:
insert into Dat
 (Dat1, f)
values
 (:Dat1, :f)
И НИЧЕГО. Может мне на сервере надо преобразовать в стринг? Как?


 
Chery   (2004-12-03 12:33) [11]

Или мне надо к передаваемому параметру :Dat1 добавить ковычки? Тоже как-то звучит не очень...


 
Chery   (2004-12-03 13:04) [12]

Кажись заработало.

SELECT CAST(Dat1 AS CHAR) as Dat1,  f
FROM Dat

А потом
как и было:
insert into Dat
(Dat1, f)
values
(:Dat1, :f)


 
Chery   (2004-12-03 13:11) [13]

ТОлько в приложении дата ест-но отображается в америк. формате:
гггг.мм.дд.
Есть идеи как быстро и безболезненно её к "нашему виду" привести дд.мм.гггг?


 
Johnmen ©   (2004-12-03 13:21) [14]

А причём здесь, как она отображается в приложении ?


 
Chery   (2004-12-03 13:45) [15]

Ну, я же передаю с сервера стринг. А в МуСКЛ данные хранятся как гггг.мм.дд. Вот они мне так и отображаются.


 
sniknik ©   (2004-12-03 22:01) [16]

> А в МуСКЛ данные хранятся как гггг.мм.дд.
по моему уже в 10й раз только для тебя (я не первый но был в их числе ;) MySQL как и любая другая современная базе НЕ ХРАНИТ даты в строках (а в типах detetime/... ЧИСЛА!) и поэтому НЕ ИМЕЕТ формата хранения (в виде "гггг.мм.дд"), только отображения/преобразования.

ты так и не нашол книжек для чтения?



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

Текущий архив: 2005.01.02;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.032 c
1-1103302022
DarkLord
2004-12-17 19:47
2005.01.02
Конвертация HTML в TXT


14-1101898920
olookin
2004-12-01 14:02
2005.01.02
Прогнозы на 6-й тур Лиги Чемпионов


14-1102670521
Photo
2004-12-10 12:22
2005.01.02
Настройка Word


14-1102541741
Piter
2004-12-09 00:35
2005.01.02
Вопросы по VMWare


4-1100800459
The Scorpion
2004-11-18 20:54
2005.01.02
Проецируемые в память файлы