2011-10-14 31 views
19

Tôi có một bảng có trường ngày, có ngày của con người như sau: '2008-01-08 19:23:32' Bây giờ tôi phải sao chép trường này cộng với một số trường khác của cùng một bảng vào bảng khác, nhưng ngày cần phải ở dấu thời gian unix.Làm thế nào để chuyển đổi ngày của con người thành dấu thời gian unix trong Mysql?

Có chức năng nào trong mysql chuyển đổi ngày của con người thành dấu thời gian unix bên trong truy vấn không?

+2

Chỉ cần một lưu ý, nếu ngày được lưu trữ trong bảng của bạn không có trong UTC sau đó bạn có thể phải chuyển nó sang múi giờ UTC đầu tiên và sau đó gọi unix_timestamp(). Tôi không chắc liệu 'unix_timestamp()' có tự động chuyển đổi datetime thành UTC trước khi tính toán dấu thời gian hay không. –

+0

Chỉ cần lưu ý .. đây là loại trường 'datetime', không phải kiểu trường' date'. Có một sự khác biệt. – DevlshOne

Trả lời

42
mysql> select unix_timestamp('2008-01-08 19:23:32'); 
+---------------------------------------+ 
| unix_timestamp('2008-01-08 19:23:32') | 
+---------------------------------------+ 
|       1199849012 | 
+---------------------------------------+ 
1 row in set (0.04 sec) 

tìm thấy ở đây: http://www.epochconverter.com/

4

UNIX_TIMESTAMP() Nên thực hiện thủ thuật!

Từ MySQL Documents:

Nếu gọi mà không có đối số, trả về một dấu thời gian Unix (giây kể từ '1970/01/01 00:00:00' UTC) là một số nguyên unsigned. Nếu UNIX_TIMESTAMP() được gọi với đối số ngày, nó trả về giá trị của đối số làm giây kể từ '1970-01-01 00:00:00' UTC. ngày có thể là chuỗi DATE, chuỗi DATETIME, dấu thời gian hoặc số ở định dạng YYMMDD hoặc YYYYMMDD. Máy chủ diễn giải ngày dưới dạng giá trị trong khu vực hiện tại là và chuyển đổi nó thành giá trị nội bộ trong UTC.

mysql> SELECT UNIX_TIMESTAMP(); 
     -> 1196440210 
mysql> SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19'); 
     -> 1196440219 
0

Yes. CHỌN UNIX_TIMESTAMP (tên_cột) FROM TABLE

3
SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19'); 
Các vấn đề liên quan