Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-1103425422
TechnoDreamer
2004-12-19 06:03
2005.01.02
Алгоритм XOR и его взлом


14-1103127195
Cerberus
2004-12-15 19:13
2005.01.02
Статичная dll


14-1102679385
Cosinus
2004-12-10 14:49
2005.01.02
Что такое VFAT?


3-1102101932
lapatoc
2004-12-03 22:25
2005.01.02
OLE объекты в БД


3-1102316702
Sergo
2004-12-06 10:05
2005.01.02
Тип поля





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