web-dev-qa-db-fra.com

Comment insérer une valeur datetime dans une base de données SQLite?

J'essaie d'insérer une valeur datetime dans une base de données SQLite . Cela semble être une réussite, mais lorsque j'essaie de récupérer la valeur, une erreur se produit:

<Impossible de lire les données>

Les instructions SQL sont:

create table myTable (name varchar(25), myDate DATETIME)
insert into myTable (name,mydate) Values ('fred','jan 1 2009 13:22:15')
105
Brad

Le format dont vous avez besoin est:

'2007-01-01 10:00:00'

c'est-à-dire aaaa-MM-jj HH: mm: ss

Toutefois, si possible, utilisez une requête paramétrée, cela vous évitera de vous soucier des détails de la mise en forme.

143
itowlson

La façon de stocker les dates dans SQLite est la suivante:

 yyyy-mm-dd hh:mm:ss.xxxxxx

SQLite dispose également de fonctions de date et d’heure que vous pouvez utiliser. Voir SQL tel que compris par SQLite, fonctions de date et d'heure .

46
Tor Valamo

Vous devez modifier le format de la chaîne de date que vous fournissez pour pouvoir l'insérer à l'aide de la fonction STRFTIME. Raison d'être, il n'y a pas d'option pour une abréviation d'un mois:

%d  day of month: 00
%f  fractional seconds: SS.SSS
%H  hour: 00-24
%j  day of year: 001-366
%J  Julian day number
%m  month: 01-12
%M  minute: 00-59
%s  seconds since 1970-01-01
%S  seconds: 00-59
%w  day of week 0-6 with sunday==0
%W  week of year: 00-53
%Y  year: 0000-9999
%%  % 

L’alternative est de formater la date/heure dans un format déjà accepté:

  1. AAAA-MM-JJ
  2. AAAA-MM-JJ HH: MM
  3. AAAA-MM-JJ HH: MM: SS
  4. AAAA-MM-JJ HH: MM: SS.SSS
  5. AAAA-MM-JJTHH: MM
  6. AAAA-MM-JJTHH: MM: SS
  7. AAAA-MM-JJTHH: MM: SS.SSS
  8. HH: MM
  9. HH: MM: SS
  10. HH: MM: SS.SSS
  11. maintenant

Référence: fonctions SQLite Date & Time

17
OMG Ponies

Utilisez CURRENT_TIMESTAMP lorsque vous en avez besoin, au lieu de OF NOW() (qui est MySQL)

8
freezing_

Lire This : 1.2 Date et le meilleur type de données de type de temps pour stocker la date et l'heure est:

Le meilleur format de TEXT est: yyyy-MM-dd HH:mm:ss

Ensuite, lisez this page; c'est mieux expliquer la date et l'heure dans SQLite. J'espère que cela vous aide

7
Ali Amanzadegan

Ce n'est peut-être pas la méthode la plus populaire ou la plus efficace, mais j'ai tendance à renoncer aux types de données forts dans SQLite car ils sont tous essentiellement vidés sous forme de chaînes.

J'ai déjà écrit un wrapper C # mince autour de la bibliothèque SQLite (lorsque vous utilisez SQLite avec C #, bien sûr) pour gérer les insertions et les extractions vers et depuis SQLite comme si je traitais avec des objets DateTime.

0
Messy