2012-06-21 56 views
94

Làm cách nào để chuyển đổi định dạng sau để bỏ dấu thời gian?MySQL chuyển đổi ngày giờ thành dấu thời gian Unix

Apr 15 2012 12:00AM 

Định dạng tôi nhận được từ DB dường như có AM ở cuối. Tôi đã thử bằng cách sử dụng sau đây nhưng nó đã không làm việc:

CONVERT(DATETIME, Sales.SalesDate, 103) AS DTSALESDATE, 
CONVERT(TIMESTAMP, Sales.SalesDate, 103) AS TSSALESDATE 

where Sales.SalesDate value is Apr 15 2012 12:00AM 
+0

là ngày được lưu trữ dưới dạng văn bản trong DB? – strnk

+1

Nó thực sự là một câu hỏi MySQL? [Cú pháp] của bạn (http://dev.mysql.com/doc/refman//5.5/en/cast-functions.html#function_convert) không đề xuất như vậy. –

+1

Dường như câu hỏi về MSSQL là gì. –

Trả lời

165

Hãy thử truy vấn này cho CONVERT DATETIME to UNIX TIME STAMP

SELECT UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p')) 

Query này cho CHANGE DATE FORMATE

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p')),'%m-%d-%Y %h:%i:%p') 
+0

là dành cho MSSQL? – redcoder

+5

@redcoder đây là MYSQL –

26

Bạn chắc chắn sẽ phải sử dụng cả hai STR_TO_DATE để chuyển đổi ngày của bạn để định dạng ngày chuẩn MySQL, và UNIX_TIMESTAMP để có được những dấu thời gian từ nó.

Với định dạng của ngày của bạn, một cái gì đó giống như

UNIX_TIMESTAMP(STR_TO_DATE(Sales.SalesDate, '%M %e %Y %h:%i%p')) 

Will mang đến cho bạn một dấu thời gian hợp lệ. Xem tài liệu STR_TO_DATE để biết thêm thông tin về chuỗi định dạng.

10

Đối với ngày hiện tại chỉ cần sử dụng UNIX_TIMESTAMP() trong mysql query của bạn.

-4

Từ http://www.epochconverter.com/

SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE()) 

My bad, SELECT unix_timestamp(time) Time format: YYYY-MM-DD HH:MM:SS or YYMMDD or YYYYMMDD. More on using timestamps with MySQL: 

http://www.epochconverter.com/programming/mysql-from-unixtime.php 
+1

Câu trả lời này là dành cho MSSQL (mặc dù câu hỏi này có một số nhầm lẫn). –

Các vấn đề liên quan