Форум: "Базы";
Текущий архив: 2005.01.02;
Скачать: [xml.tar.bz2];
ВнизСтринг - Дата - Максимальное значение. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.057 c