107 votes

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

J'essaie d'insérer une valeur de date dans un fichier de type SQLite base de données. L'opération semble réussir, mais lorsque j'essaie de récupérer la valeur, une erreur se produit :

<Incapable 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')

146voto

itowlson Points 44174

Le format dont vous avez besoin est le suivant :

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

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

Dans la mesure du possible, utilisez toutefois une requête paramétrée, car vous n'aurez pas à vous soucier des détails du formatage.

46voto

Tor Valamo Points 14209

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

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

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

17voto

OMG Ponies Points 144785

Vous devez modifier le format de la chaîne de date que vous fournissez afin de pouvoir l'insérer à l'aide de la fonction STRFTIME. La raison en est qu'il n'y a pas d'option pour l'abréviation du 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'autre solution consiste à formater la date et l'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-JJH:MM
  6. AAAA-MM-JJH:MM:SS
  7. AAAA-MM-DDTHH:MM:SS.SSS
  8. HH:MM
  9. HH:MM:SS
  10. HH:MM:SS.SSS
  11. maintenant

Référence : Fonctions SQLite de date et heure

8voto

Persiaprog Points 11

Lire Ce site : 1.2 Date Type de données date et heure Le meilleur type de données pour stocker la date et l'heure est :

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

Ensuite, lisez ce page ; c'est la meilleure façon d'expliquer la date et l'heure dans les pays suivants SQLite . J'espère que cela vous aidera

8voto

freezing_ Points 76

utilisez CURRENT_TIMESTAMP quand vous en avez besoin, au lieu de NOW() (qui est mysql)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X