Topic: Сравнение дат
как правильно сравнить 2 даты, что бы понять какая из них больше?
My Visual Database → Russian → Сравнение дат
как правильно сравнить 2 даты, что бы понять какая из них больше?
в этом примере находится ближайшая дата (больше) по отношению к системному времени
http://myvisualdatabase.com/forum/misc. … download=1
1)не пойму что там в скрипте написано... strftime(''%S'',''now'') >= strftime(''%S'',a) ORDER BY a ASC limit 1');
первый раз вижу знак %, да и вообще вся эта часть непонятна
2)А переменную как назначить для wDate? Я знаю что если через форму то
wDatemin := FormatDateTime('yyyy-mm-dd',поездка.DateTimePicker1.DateTime);
А как присвоить дату из таблицы?
wDatemin := таблица А столб Б ид = Form1.TableGrid1.sqlValue (там нужно где то указывать FormatDateTime('yyyy-mm-dd ?
PS. со вторым пунктом вроде разобрался, переменная пристроилась обычным способом
Просто большую дату можно получить так
Form1.Edit1.Text:=SQLExecute ('SELECT MAX(DATE(a)) FROM q');
где MAX(DATE(a)) - MAX значит максимальное значение
DATE(a) - выбираем из даты где "а" это имя поля
где именно Вам нужно сравнить даты?
Если я сначала вытаскивыю данные переменной
wDatereal := SQLExecute('SELECT дата FROM event WHERE id='+ назначение_мероприятия.TableGrid1.sqlValue );
А потом их сохраняю в другую строку
SQLExecute('UPDATE trip SET дата_первого_города = "'+wDatereal+'" WHERE id="'+idTrip+'"');
Так вот, дата сохраняется неправильно, такое ощущение что день сохраняется в год, а год в день. Путаница
я так понимаю мне надо где то добавить
FormatDateTime('yyyy-mm-dd'
в
wDatereal := SQLExecute('SELECT дата FROM event WHERE id='+ назначение_мероприятия.TableGrid1.sqlValue );
можно изменть получаемый форма даты так
SQLExecute('SELECT strftime("%d-%m-%Y",a) FROM q WHERE id=' + Form1.TableGrid1.sqlValue);
("%d-%m-%Y",a) - формат даты и поле из которого берем дату
соблюдайте регистр букв
%d День месяца: 00
%f Доли секунды: SS.SSS
%H час: 00-24
%j день года: 001-366
%J Юлианский день
%m месяц: 01-12
%M минуты: 00-59
%s количество секунд с 1970-01-01 (unix timestamp)
%S секунды: 00-59
%w день недели 0-6 где Воскресенье==0
%W неделя года: 00-53
%Y год: 0000-9999
%% %
пишет что (имя моей базы данных tester).strtime does not exist
моя строчка до этого выглядела так
wDatereal := SQLExecute ('SELECT data FROM event WHERE id='+ назначение_мероприятия.TableGrid1.sqlValue );
по примеру селал
wDatereal := SQLExecute ('SELECT strftime("%d-%m-%Y",data) FROM event WHERE id='+ назначение_мероприятия.TableGrid1.sqlValue );
и он начал воспринимать strftime как название строки (как я понял)
не существует
что странно
вот пример, просто клините по дате в гриде
Да... оказывается этот скрипт не работает на MySQL, а на SQLite он работает... вот только у меня проект MySQL...
попробуйте так
SELECT DATE_FORMAT(data,GET_FORMAT(DATE,'EUR') FROM event WHERE id='+ назначение_мероприятия.TableGrid1.sqlValue );
GET_FORMAT(DATE,'USA') '%m.%d.%Y'
GET_FORMAT(DATE,'JIS') '%Y-%m-%d'
GET_FORMAT(DATE,'ISO') '%Y-%m-%d'
GET_FORMAT(DATE,'EUR') '%d.%m.%Y'
GET_FORMAT(DATE,'INTERNAL') '%Y%m%d'
GET_FORMAT(DATETIME,'USA') '%Y-%m-%d %H.%i.%s'
GET_FORMAT(DATETIME,'JIS') '%Y-%m-%d %H:%i:%s'
GET_FORMAT(DATETIME,'ISO') '%Y-%m-%d %H:%i:%s'
GET_FORMAT(DATETIME,'EUR') '%Y-%m-%d %H.%i.%s'
GET_FORMAT(DATETIME,'INTERNAL') '%Y%m%d%H%i%s'
GET_FORMAT(TIME,'USA') '%h:%i:%s %p'
GET_FORMAT(TIME,'JIS') '%H:%i:%s'
GET_FORMAT(TIME,'ISO') '%H:%i:%s'
GET_FORMAT(TIME,'EUR') '%H.%i.%s'
GET_FORMAT(TIME,'INTERNAL') '%H%i%s'
Почему-то ошибка вылезает перед выбором формата в кавычках 'EUR' или любым другим. Причём если оставить ' ' пустыми, то программа хотя-бы запускается, но всё равно выдаёт ошибку. У вас данная строка работает? или это было предположение?
взято из описания
разобрался... в итоге правильный способ такой
SELECT DATE_FORMAT(дата, "%d.%m.%Y") FROM event WHERE id='
https://www.w3schools.com/SQL/func_mysq … format.asp
My Visual Database → Russian → Сравнение дат
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi