22 Voix

SQLite: CURRENT_TIMESTAMP renvoie une heure incorrecte

Question de SmartUser | 21/11/2023 à 20:08

Je voudrais stocker l'heure actuelle dans une base de données SQLite. Pour cela, j'ai découvert la constante CURRENT_TIMESTAMP qui devrait me fournir juste l'horodatage dont j'ai besoin.

Cependant, l'heure est toujours décalée d'une heure. Peu importe que je travaille avec une valeur de colonne par défaut...

CREATE TABLE d (dat DATETIME DEFAULT CURRENT_TIMESTAMP, ...);

...ou que je définisse la valeur "à la main":

UPDATE d SET dat = CURRENT_TIMESTAMP WHERE ...;

Les deux manières conduisent à ce décalage temporel et j'obtiens toujours le mauvais temps avec ce décalage horaire lorsque j'essaie de lire les valeurs. Ce qui est étrange, c'est que les minutes sont toujours correctes, les heures sont toujours fausses. Que puis-je faire?

RépondrePositifNégatif
2Meilleure Réponse2 Voix

SQLite stocke l'heure CURRENT_TIMESTAMP au format UTC/GMT (Coordinated Universal Time / Greenwich Mean Time -Temps Universel Coordonné / Temps Moyen de Greenwich). Cela signifie que l'heure est stockée indépendamment du fuseau horaire correspondant dans lequel vous utilisez votre ordinateur.

Par conséquent, vous devez convertir l’heure en l'heure locale actuelle lors de la lecture, afin que le fuseau horaire et l’heure d’été soient pris en compte.

Vous pouvez le faire de la manière suivante:

SELECT DATETIME(dat, 'localtime') FROM tab;

Dans cet exemple, nous lisons la colonne "dat" du tableau "tab".

Un avantage de ce type de stockage est que le stockage est toujours le même et ne dépend pas du lieu ou du fuseau horaire.

An advantage of this kind of storage is that the storage is always the same and not depending on the location or time zone.
22/11/2023 à 11:01

RépondrePositif Négatif
Répondre

Sujets Connexes

VirtualBox: Changer la Date et l'Heure

Tutoriel | 10 Commentaires

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.