2014-12-18 23 views
8

The documentation for SQLite3 datatypes nóiLàm cách nào để chuyển đổi chuỗi ngày giờ thành dấu thời gian UNIX trong SQLite3?

được xây dựng trong ngày Và Time Chức năng của SQLite có khả năng lưu trữ ngày tháng và thời gian như TEXT, REAL, hoặc INTEGER giá trị

Tôi muốn sử dụng những chức năng để lưu trữ INTEGER giá trị. Làm thế nào để tôi làm như vậy? The documentation for SQLite3 datetime functions mô tả các loại đối số cho các hàm đó, nhưng không nói gì về kiểu trả về. Dường như kiểu trả về là text:

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

Đây không phải những gì tôi muốn là - Tôi muốn một giá trị số nguyên đại diện cho rằng thời gian là một dấu thời gian UNIX. Ngay cả khi tôi tạo một cột loại integer và cố gắng lưu trữ giá trị datetime(...) trong đó, SQLite lưu trữ cột đó dưới dạng giá trị text trong cột integer đó.

Làm cách nào để buộc chức năng datetime và bạn bè trả về dấu thời gian UNIX, thay vì giá trị text?

Trả lời

13

Tất cả các hàm ngày/giờ tích hợp trả về chuỗi.

Để chuyển đổi một chuỗi thành một số, sử dụng CAST:

SELECT CAST(strftime('%s', 'now') AS INT); 
Các vấn đề liên quan