Подскажите, пожалуйста, в каком формате лучше хранить в БД дату и время, что б можно было делать зарос за определенный день, месяц, год
Для меня привычнее так "20.07.2010 18:00"
В справке так "2010-07-20 18:00" или "в виде числа с плавающей точкой"
В HiAsm можно еще много форматов найти
Этот топик читают: Гость
Ответов: 758
Рейтинг: 112
|
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
miver писал(а): Для меня привычнее так "20.07.2010 18:00"Это относится и к созданию запроса. Запрос нужно тоже делать или на определенный год, или на год.месяц, или на год.месяц.день А вообще в SQLite для хранения даты доступны Date and Time Datatype
SQLite нет специального типа для хранения даты иили времени. Date и Time Functions в SQLite читают и пишут дату и время как TEXT, REAL или INTEGER переменные: •TEXT как ISO8601 строку ("YYYY-MM-DD HH:MM:SS.SSS"). •REAL как число с плавающей точкой : целая часть - число суток, дробная - часть суток. •INTEGER как Unix Time - число секунд после 1970-01-01 00:00:00 UTC. |
|||
карма: 25 |
|
Ответов: 1891
Рейтинг: 110
|
|||
miver, писал(а): Для меня привычнее так "20.07.2010 18:00"Ну-ну, делай, потом только не спрашивай почему запросы за определенный день, месяц и год не работают ------------ Дoбавленo в 23.03: Начал потихоньку приводить Справку по SQLite в порядок. Разбил справку на отдельные статьи. Кое-какие статьи дополнил. Полностью написал справку по статистическим (aggregate functions) и основным функциям (core functions) в SQLite |
|||
карма: 0 |
| ||
Голосовали: | Tad, olDjeka, Mandriva |
Ответов: 16884
Рейтинг: 1239
|
|||
Alexbootch, видел я . Удобнее намного. А про
Alexbootch писал(а): потом только не спрашивай |
|||
карма: 25 |
|
Ответов: 1891
Рейтинг: 110
|
|||
[flood]Tad, а по моему miver и не спрашивает, а сам себе отвечает [/flood]
|
|||
карма: 0 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
И в чем проблема-то конвертировать на лету один формат данных в другой при записи и чтении
|
|||
карма: 22 |
|
Ответов: 758
Рейтинг: 112
|
|||
Tad писал(а): Привычнее, если оператор вводит дату вручную (возможны ошибки). Если дата выбирается из ComboBox-ов, то намного удобнее выбирать сначала год, потом выбираешь месяц и потом, в зависимости от высокосныйпростой и в зависимости от месяца в ComboBox-е дней создаешь список дней и никогда не получишь 33-е мартаПолностью согласен. Но даже в DataPicker формат DD.MM.YYYY или HH:MM. И поэтому привычней для пользователя и для меня в частности Tad писал(а): •TEXT как ISO8601 строку ("YYYY-MM-DD HH:MM:SS.SSS").
•REAL как число с плавающей точкой : целая часть - число суток, дробная - часть суток. •INTEGER как Unix Time - число секунд после 1970-01-01 00:00:00 UTC. Три формата, но так и не стало понятней какой из них лучше для запросов Или нет разницы для SQLite в каком формате (из этих 3-х) хранить (В плане объема, быстродействия, сложности запросов) Alexbootch писал(а): Ну-ну, делай, потом только не спрашивай почему запросы за определенный день, месяц и год не работают Сарказм иногда хорошо, когда он уместен Может не правильно поняли "Для меня привычнее так "20.07.2010 18:00"" - означает отображение даты и времени в программе, а не в БД nesco писал(а): И в чем проблема-то конвертировать на лету один формат данных в другой при записи и чтенииПроблема не конвертации, а хранения, сортировки, выдаче данных связанных с датой и временем при помощи БД P.S.: Может где-нибудь есть пример БД с датой и временем. Буду благодарен за ссылку |
|||
карма: 1 |
|
Ответов: 1891
Рейтинг: 110
|
|||
miver, будь внимательнее, т.к. я это не писал
miver, писал(а): Alexbootch, писал(а): Привычнее, если оператор вводит дату вручную (возможны ошибки). Если дата выбирается из ComboBox-ов, то намного удобнее выбирать сначала год, потом выбираешь месяц и потом, в зависимости от высокосныйпростой и в зависимости от месяца в ComboBox-е дней создаешь список дней и никогда не получишь 33-е мартаmiver, писал(а): Сарказм иногда хорошо, когда он уместенНет тут никакого сарказма, т.к. в SQLite дата и время хранится в формате "YYYY-MM-DD HH:MM:SS.SSS" и не иначе. Для пользователя же твоей программы дату можно вывести как угодно miver, писал(а): P.S.: Может где-нибудь есть пример БД с датой и временем. Буду благодарен за ссылкуСмотри date and time functions, в частности функцию strftime, либо конкретно спрашивай (если не понял), что тебе нужно |
|||
карма: 0 |
|
Ответов: 758
Рейтинг: 112
|
|||
Alexbootch писал(а): Нет тут никакого сарказма, т.к. в SQLite дата и время хранится в формате "YYYY-MM-DD HH:MM:SS.SSS" и не иначе. Для пользователя же твоей программы дату можно вывести как угодноА какже 3-и формата что Tad описал и дал цитату из справки Alexbootch писал(а): Смотри date and time functions , в частности функцию strftime, либо конкретно спрашивай (если не понял), что тебе нужноТам я уже давно все перечитал. Мне бы живой пример с запросами на, скажем, данные за определенный период времени |
|||
карма: 1 |
|
Ответов: 1891
Рейтинг: 110
|
|||
miver, писал(а): А какже 3-и формата что Tad описал и дал цитату из справки С учетом компонента DateConvertor - этот формат самый подходящий для использования miver, писал(а): Tам я уже давно все перечитал. Мне бы живой пример с запросами на, скажем, данные за определенный период времениЯ тебе пример из пальца не высосу. Давай SQL на создание таблицы и вставку данных и конкретно говори, что ты хочешь получить из данной таблицы |
|||
карма: 0 |
|
Ответов: 758
Рейтинг: 112
|
|||
Как задать запрос, что б видало количество данных введенных в четверг (в независимости от даты) |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco писал(а): И в чем проблема-то конвертировать на лету один формат данных в другой при записи и чтении И при организации запросов конвертировать на лету. Сплошные конверторы (и без нижней точки, а у FormatStr точки то сверху. Но это так, к слову.) Ну при записи, если в Real, то ненадо, а при чтении то из Integer ненадо. А так как у нас Real не с 0000-01-01 (а в SQLite да ), то при чтении даты приходится изворачиваться
miver писал(а): Но даже в DataPicker формат DD.MM.YYYY или HH:MM. И поэтому привычней для пользователя и для меня в частностиAlexbootch писал(а): Для пользователя же твоей программы дату можно вывести как угодно miver писал(а): Может где-нибудь есть пример БД с датой и временемAlexbootch, у меня Alexbootch писал(а): Смотри date and time functions |
|||
карма: 25 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Tad писал(а): Сплошные конверторы (и без нижней точки, а у FormatStr точки то сверху. Но это так, к слову.)Не понимаю, в чем проблема вот из этого -- DD.MM.YYYY HH:MM:SS.SSS получить вот это YYYY-MM-DD HH:MM:SS.SSS или Real ------------ Дoбавленo в 13.08: Или я не догнал, или...
|
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
miver писал(а): Вот пример, но запрос выдает 35 вместо 55
------------ Дoбавленo в 13.33: nesco писал(а): Или я не догнал, или...1. шаблоны форматов даты времени 2. DateReal - писал выше. Кто не знает о хитром числе 1721424.5, рискует получить от
------------ Дoбавленo в 13.55: nesco писал(а): Не понимаю, в чем проблема вот из этого -- DD.MM.YYYY HH:MM:SS.SSS получить вот это YYYY-MM-DD HH:MM:SS.SSSDatePicker.doSetDate и у оператора на экране miver писал(а): "Для меня привычнее так "20.07.2010 18:00"" |
|||
карма: 25 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
Tad писал(а): во первых минуты на месяцы замени в формате "mm на MM"Да, ошибся Tad писал(а): Я говорю о применении стандартных функций SQLite, которые не всегда совпадают с HiAsm-овскимиА я говорю об использовании любых ресурсов для достижения поставленной задачи. |
|||
карма: 22 |
|