2014-12-18 13 views
8

The documentation for SQLite3 datatypes mówiJak przekonwertować ciąg datetime na znacznik czasu UNIX w SQLite3?

wbudowanej data i godzina Funkcje SQLite są zdolne do przechowywania daty i godziny jako tekst, rzeczywista lub INTEGER wartości

chcę użyć tych funkcji do przechowywania INTEGER wartości. Jak to zrobić? The documentation for SQLite3 datetime functions opisuje typy argumentów tych funkcji, ale nie mówi nic o typie zwracanym. Wydaje się, że typ zwracany jest text:

sqlite> select typeOf(datetime('2014-12-12 12:12:12.000')); 
text 

To nie jest to, co chcę - chcę wartość całkowitą reprezentującą ten czas jako znacznik czasu UNIX. Nawet gdy utworzę kolumnę typu integer i spróbuję zapisać w niej wartość datetime(...), SQLite przechowuje ją jako wartość text w tej kolumnie integer.

Jak wymusić na funkcji datetime przyjaciołach zwrócenie znacznika czasu UNIX zamiast wartości text?

Odpowiedz

13

Wszystkie wbudowane funkcje daty/czasu zwracają łańcuchy.

Aby przekonwertować ciąg na liczbę użyć CAST:

SELECT CAST(strftime('%s', 'now') AS INT);