Форум: "Начинающим";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];
ВнизMSSQL2000. Возврат значения поля даты - мм.дд.гггг Найти похожие ветки
← →
Vlad Oshin © (2007-04-12 14:42) [0]Локальные настройки правильные.дд.мм.гггг
На сервере() время правильно(системное)
Как начинаю сравнивать
if ADOQueryDa.FieldByName("DateOff").AsDateTime > tdatetime(now)
then ttemS:="<img src="../images/new3.gif" border="0">"
else ttemS:="";
так и выясняется, что он принимает дату иначе чем дд.мм.гггг
Надо сказать чтоб было дд.мм.гггг
как?
← →
Desdechado © (2007-04-12 15:22) [1]Йо! Ты давно уже вопросы задаешь, а все как в детсаду...
И где у тебя тут "он принимает дату иначе чем дд.мм.гггг"? Кто "он"? Кому "Надо сказать"?
← →
Ega23 © (2007-04-12 15:26) [2]
> tdatetime(now)
Зачем???
> if ADOQueryDa.FieldByName("DateOff").AsDateTime > tdatetime(now)
Чему равно значение ADOQueryDa.FieldByName("DateOff").AsDateTime?
← →
stone © (2007-04-12 15:51) [3]
> так и выясняется, что он принимает дату иначе чем дд.мм.
> гггг
Естественно, дата она вообще-то число с плавающей точкой. Все эти дд.мм.гггг лишь графическое отображение. Соответственно, либо сравнивай число с чилом (не забывай, что она еще и время содержит полсе запятой), либо приводи к одинаковому формату.
← →
Vlad Oshin © (2007-04-12 16:04) [4]
> Чему равно значение ADOQueryDa.FieldByName("DateOff").AsDateTime?
04.12.2007, т.е. мм.дд.ггггг
12.04.2007 должно быть, т.е дд.мм.гггг
> Desdechado © (12.04.07 15:22) [1]
> 1где у тебя тут "он принимает дату иначе чем дд.мм.гггг"?
> 2Кто "он"? 3Кому "Надо сказать"?
1 наверное, сервер sql, может и ado гдето внутри, не знаю, потому и спрашиваю
потому как равенство на сегодняшнюю дату не выполняется
ADOQueryDa.FieldByName("DateOff").AsDateTime > tdatetime(now)
2 наверное он же
3 наверное ему же
Йо! Что ж непонятного: ответ приходит не в том формате - не дд.мм.гггг, а мм,дд,гггг. Надо гдето что-то прописать или в программе или на сервере, или еще гдето.
ну, я так думаю.
не, правда, неужели непонятно написан был вопрос?
тогда, да, надо мне поучится задавать вопросы..
← →
Vlad Oshin © (2007-04-12 16:16) [5]
> stone © (12.04.07 15:51) [3]
да это понятно,
вот и спрашиваю, как?
как привести к
> к одинаковому формату.
сначала заносил - insert into .. values ( ..,datetime(now), ..)
теперь сравниваю
if ADOQueryDa.FieldByName("DateOff").AsDateTime > tdatetime(now)
может есть что-то типа ADOQueryDa.formatdate(формат)?
PS
Да я бы не спрашивал, сделал бы
> число с чилом
придумал бы какие-нибудь, типа, datetofloat
но хочется по-человечески, наглядно. Чтоб открыть таблицу, и видно было - это тогда было занесено, это тогда и т.п.
Если что - ручками чтоб мог человек, далекий от всего этого, переправить в дбгриде.
← →
Johnmen © (2007-04-12 16:17) [6]
> Vlad Oshin © (12.04.07 16:04) [4]
> > Чему равно значение ADOQueryDa.FieldByName("DateOff").AsDateTime?
> 04.12.2007, т.е. мм.дд.ггггг
Каким образом численное значение м.б. равно строковому?
← →
stone © (2007-04-12 16:22) [7]
> Vlad Oshin © (12.04.07 16:16) [5]
Давай мухи отдельно - котлеты отдельно.
> if ADOQueryDa.FieldByName("DateOff").AsDateTime > tdatetime(now)
Во-первых, не надо tdatetime(now), достаточно просто now.
Во-вторых, не забывай что DateTime содержит и время, соответственоо если у тебя в ("DateOff").AsDateTime просто дата без времени(например сегодня), то она всегда будет меньше now.
> но хочется по-человечески, наглядно. Чтоб открыть таблицу,
> и видно было - это тогда было занесено, это тогда и т.п.
>
> Если что - ручками чтоб мог человек, далекий от всего этого,
> переправить в дбгриде.
Для этого у поля существуют свойства DisplayFormat и EditFormat
← →
Vlad Oshin © (2007-04-12 16:37) [8]
> Во-первых, не надо tdatetime(now), достаточно просто now.
>
по идеи да, и так и было, это я потом привел
> Во-вторых, не забывай что DateTime содержит и время, соответственоо
> если у тебя в ("DateOff").AsDateTime просто дата без времени(например
> сегодня), то она всегда будет меньше now.
log(floattostr(ADOQuery1.FieldByName("DateOff").Asdatetime)+" "+floattostr(tdatetime(now)));
39420 > 39183,6869014005
> Johnmen © (12.04.07 16:17) [6]
выше, если числа приводить
← →
Плохиш © (2007-04-12 16:44) [9]
> Vlad Oshin © (12.04.07 16:04) [4]
>
> > Чему равно значение ADOQueryDa.FieldByName("DateOff").
> AsDateTime?
>
> 04.12.2007, т.е. мм.дд.ггггг
> 12.04.2007 должно быть, т.е дд.мм.гггг
Есть подозрение, что какой-то горе-программист в базу вальнул эти даты в виде текста в запросе, а о форматах представления дат понятия не имел.
← →
SlymRO © (2007-04-12 16:46) [10]Int(Now)?
← →
Desdechado © (2007-04-12 16:46) [11]Тогда остается выяснить тип поля DateOff, которое содержится в наборе данных. Если оно у тебя строковое, тогда могут быть проблемы.
ЗЫ А вопросы ты задавать не умеешь, так же как и отвечатьна наводящие. Не все на твоей волне гуляют.
← →
SlymRO © (2007-04-12 16:47) [12]Плохиш © (12.04.07 16:44) [9]
даты в виде текста
FieldByName("DateOff").Asdatetime
← →
Johnmen © (2007-04-12 16:53) [13]
> SlymRO © (12.04.07 16:47) [12]
>> Плохиш © (12.04.07 16:44) [9]
>> даты в виде текста
>FieldByName("DateOff").Asdatetime
Это ничего не значит.
← →
SlymRO © (2007-04-12 16:59) [14]if not (ADOTable1.FieldByName("DateOff").DataType in [ftDate, ftTime, ftDateTime]) then raise exception.cre...
← →
Плохиш © (2007-04-12 17:03) [15]
> SlymRO © (12.04.07 16:47) [12]
> Плохиш © (12.04.07 16:44) [9]
> даты в виде текста
> FieldByName("DateOff").Asdatetime
Это уже читают результат работы того горе-программиста.
← →
Vlad Oshin © (2007-04-12 18:24) [16]спасибо, разобрался. Перегнал все таблицы
← →
Desdechado © (2007-04-12 18:27) [17]> Перегнал все таблицы
В сибирь?
← →
Vlad Oshin © (2007-04-12 19:13) [18]:)
во временные, потом назад более корректно
Спасибо еще раз,
и извинения :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.29;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.043 c