Russian Qt Forum
Ноябрь 24, 2024, 01:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: как в SQLLite записать дату  (Прочитано 6460 раз)
slava_d200
Гость
« : Декабрь 03, 2011, 01:17 »

Доброе время суток.
Люди покажите как в SQLLite
записать дату:
INSERT INTO Doc (GUID_id, Number, Date) VALUES ('{7bcb868d-b023-4a88-9e11-3f5b12f5b409}', 1, '03.12.2011');

не получается Грустный
Записан
slava_d200
Гость
« Ответ #1 : Декабрь 03, 2011, 01:40 »

Отвечаю сам себе Улыбающийся

INSERT INTO Doc (GUID_id, Number, Date) VALUES ('{5ccc6b85-afa9-4c1b-bc16-9c6c5c2474d1}', 1, '2011-12-03 02:38:16');

вот так работает тока непойму почему в базу пишется дата без секунд
Записан
Rem Norton
Гость
« Ответ #2 : Декабрь 03, 2011, 11:14 »

Потому, что в SQLite дата хранится в виде строки. Если есть необходимость делать выборки по дате (<, >, between), то в таком виде будет полная лажа.
Записан
BuRn
Гость
« Ответ #3 : Декабрь 03, 2011, 23:46 »

может вам нужно
CURRENT_TIMESTAMP() ? дата время текущее ?
Записан
Termit
Самовар
**
Offline Offline

Сообщений: 144



Просмотр профиля WWW
« Ответ #4 : Декабрь 04, 2011, 01:28 »

Отвечаю сам себе Улыбающийся
INSERT INTO Doc (GUID_id, Number, Date) VALUES ('{5ccc6b85-afa9-4c1b-bc16-9c6c5c2474d1}', 1, '2011-12-03 02:38:16');


Правильный формат времени 2011-12-03T02:38:16.
Будет и читаться и писаться и работать с <, >, between
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
Termit
Самовар
**
Offline Offline

Сообщений: 144



Просмотр профиля WWW
« Ответ #5 : Декабрь 04, 2011, 01:37 »

Хотя нет. Если заглянуть в мануал
Цитировать
A time string can be in any of the following formats:

1.    YYYY-MM-DD
2.    YYYY-MM-DD HH:MM
3.    YYYY-MM-DD HH:MM:SS
4.    YYYY-MM-DD HH:MM:SS.SSS
5.    YYYY-MM-DDTHH:MM
6.    YYYY-MM-DDTHH:MM:SS
7.    YYYY-MM-DDTHH:MM:SS.SSS
8.    HH:MM
9.    HH:MM:SS
10.    HH:MM:SS.SSS
11.    now
12.    DDDDDDDDDD


Сам пользуюсь форматом 6 т.к. он соответствует enum Qt::DateFormat Qt::ISODate
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #6 : Декабрь 04, 2011, 02:21 »

А ещё лучше использовать bindValue (c QDateTime), а не изобретать велосипед, как вписать дату строкой.
Записан
Termit
Самовар
**
Offline Offline

Сообщений: 144



Просмотр профиля WWW
« Ответ #7 : Декабрь 04, 2011, 03:35 »

А ещё лучше использовать bindValue (c QDateTime), а не изобретать велосипед, как вписать дату строкой.
Все так, но иногда, достаточно редко :-), люди записывают данные в базу не через программу на Qt, а банальным каким-нить клиентом... И вот тогда и нужно записать так чтобы потом из Qt данные можно было вычитать и сказать им toDateTime() как того требует QVariant. При этом полезно знать в каком формате представить дату.

А по поводу велосипеда - абсолютно согласен! bindValue - наше все.
Записан

Человеческая глупость дает представление о бесконечности
(с) Иоанна Хмелевская
Странник
Гость
« Ответ #8 : Декабрь 04, 2011, 14:08 »

addBindValue наше все, c positional placeholders проблем совместимости нет = )
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 23.