2016-04-09 20 views
3

Bir sqlite3 veritabanında, tarih ve saati unix zaman damgası olarak saklıyorum. Veritabanımızda bulabileceğiniz unix zaman damgası örnekleri: 1457600307000, 1457600109000, 1457599991000. sqlite3 ile unix zaman damgası okuma

aşağıdaki sorguyu çalıştırınca:

SELECT datetime(my_date, 'unixepoch') as last_update 
FROM my_table; 

sonuç bekliyoruz gibi değil. Bu sorgunun yürütülmesinden elde edeceğimiz tarih, March/April 2016'dan bir tarih ve saat beklediğimiz zaman: -1413-03-01 13:07:12

.

Zaman damgalarını doğru olarak okumak için sqlite3 var mı?

cevap

3

saniye dönemi, ve milisaniye sayısının başlangıcından itibaren sayısı arasındaki fark vardır. 1000'e bölerek:

SELECT my_date, datetime(my_date/1000, 'unixepoch') as last_update 
FROM my_table; 

SqlFiddleDemo

Çıktı:

╔════════════════╦═════════════════════╗ 
║ my_date  ║  last_update  ║ 
╠════════════════╬═════════════════════╣ 
║ 1457600307000 ║ 2016-03-10 08:58:27 ║ 
║ 1457600109000 ║ 2016-03-10 08:55:09 ║ 
║ 1457599991000 ║ 2016-03-10 08:53:11 ║ 
╚════════════════╩═════════════════════╝ 

biz aslında 2016

Mart/Nisan ile bir tarih ve saat beklenir zaman

Menzilde olduğu anlaşılıyor.