user_asm писал(а):
снова какую-то хрень выбрало Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
|
|||
В БД писал своё время? Если своё - попробуй убрать из запроса 'LocalTime' |
|||
карма: 25 |
|
Ответов: 952
Рейтинг: 4
|
|||
В БД не писал время, просто элементом датэпикер выбирал дату и она шла в текстовое поле Srdog.
Убрал из обоих частей запроса LocalTime, все равно хрень в результате Что-то мешает но не могу понять что, на тестовой БД все нормально а на действующей бред. |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Выведи в ListBox свою колонку с датой, отсортируй как текст и посмотри глазами в чем там дело.
user_asm писал(а): просто элементом датэпикер выбирал дату и она шла в текстовое поле Srdog. |
|||
карма: 25 |
| ||
Голосовали: | user_asm |
Ответов: 952
Рейтинг: 4
|
|||
Tad,
В 1 месте буква ю вместо точки. Исправил. Буква ю на выборку почему то не влияет, на тестовой базе пробовал. Даже с буквой ю все прошло норм. Есть пустые поля Srdog. Больше ничего не заметил. Ничего не поменялось, в выборке снова хрень. Было еще 2 косяка, 30.02.2010 (в феврале не 30 дней), и в 9 месяце не 30 дней. Вот все значения за исключением пустых, так как встречаются и пустые.
|
|||
карма: 0 |
|
Ответов: 1891
Рейтинг: 110
|
|||
user_asm, Вам же русским языком было написано, что дату в базу данных нужно писать как YYYY-MM-DD либо в формате unix. Кроме того, сам разработчик написал Вам, что приведенный Вами формат не поддерживается и, следовательно, никто не гарантирует правильность выборок по формату DD.MM.YYYY.
Измените все записи на правильный формат. Вот код
|
|||
карма: 0 |
| ||
Голосовали: | user_asm |
Ответов: 952
Рейтинг: 4
|
|||
Alexbootch,
Сработало. Если не затруднит дайте ссылку на описание "Проводишь к нормальному формату date" |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
user_asm писал(а): В 1 месте буква ю вместо точки.
Было еще 2 косяка, 30.02.2010 (в феврале не 30 дней). Поэтому не говори, что user_asm писал(а): просто элементом датэпикер выбирал дату и она шла в текстовое поле Srdog. |
|||
карма: 25 |
| ||
Голосовали: | user_asm |
Ответов: 952
Рейтинг: 4
|
|||
Tad,
При первоначальном вводе испоьзую пикер, при редактировании вручную Человеческий фактор Спасибо мужики за помощь. С меня пиво ;) |
|||
карма: 0 |
|
Ответов: 1891
Рейтинг: 110
|
|||
user_asm, писал(а): Если не затруднит дайте ссылку на описание "Проводишь к нормальному формату date"Tad, тебе давал ссылку на Wiki [flood] user_asm, писал(а): С меня пиво ;) |
|||
карма: 0 |
| ||
Голосовали: | user_asm |
Ответов: 952
Рейтинг: 4
|
|||
Alexbootch,
В последнем запросе я так понял вы заменили date(...) strftime("%Y-%m-%d", ...) Tad, Видите ^^^^, читаю вики А вы говорите зря |
|||
карма: 0 |
|
Ответов: 1891
Рейтинг: 110
|
|||
Ну да. user_asm, вот тебе запрос на вывод данных в твоем любимом формате
|
|||
карма: 0 |
| ||
Голосовали: | user_asm |
Ответов: 16884
Рейтинг: 1239
|
|||
Или так
user_asm писал(а): При первоначальном вводе испоьзую пикер, при редактировании вручную Человеческий фактор ------------ Дoбавленo в 16.47: user_asm, вот то, что обещал для редактирования (заодно и становится понятно, почему ввод даты нужно начинать с года и месяца и почему ГГГГ-ММ-ДД, является международным стандартом ) |
|||
карма: 25 |
| ||
файлы: 1 | primer.rar [4.6KB] [523] | ||
Голосовали: | user_asm |
Ответов: 1891
Рейтинг: 110
|
|||
Tad, функции date, time, datetime все же лучше использовать с ('now','localtime'), т.к. при использовании только с ('now') могут быть ошибочные результаты:
SELECT datetime('now') --> 2010-08-27 13:19:31 либо SELECT datetime('now','localtime') --> 2010-08-27 17:20:38 |
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Так как SELECT datetime('now') выдает в UTC, то нужно конечно SELECT datetime('now','localtime')
модификатор "LOCALTIME" считает предшествующую строку времени как Универсальное координированное время (UTC) и пересчитывает время так, что оно отображает LOCALTIME.
Если перед "LOCALTIME" время не UTC, то поведение не определено. "UTC" является противоположностью "LOCALTIME". "UTC" предполагает, что предшествующая ему строка это время в местном часовом поясе и пересчитывает в UTC. Если предшествующая строка не в LOCALTIME, то результат "UTC" является неопределенным. Что-то с трудом верится, что user_asm пишет в БД датувремя в UTC И так как user_asm использует только дату и ночью не работает, то date('new') вполне его устроит. При огромной БД еще и (может быть) выиграет по времени выборки. ------------ Дoбавленo в 23.31: user_asm, для создания списка лет (ComboBox Год), нужно выполнить запрос
|
|||
карма: 25 |
|
Ответов: 1891
Рейтинг: 110
|
|||
Tad, писал(а): Что-то с трудом верится, что user_asm пишет в БД датувремя в UTC Tad, SELECT datetime('now','localtime') - это локальная дата и время на компьютере пользователя, а SELECT datetime('now') - это дата и время UTC. Не путай |
|||
карма: 0 |
|