2011-12-21 16 views
21

Czy istnieje sposób przekonwertowania łańcucha znaków na znacznik czasu UNIX w MySQL?Łańcuch do znacznika czasu w mysql

Na przykład mam ciąg 2011-12-21 02:20pm, który musi być w formacie znacznika czasu unix.

+1

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp – cristian

Odpowiedz

36

UNIX_TIMESTAMP() załatwia sprawę:

SELECT UNIX_TIMESTAMP('2011-12-21 14:20:00'); 

Jednak funkcja UNIX_TIMESTAMP() zajmuje tylko standardowe MySQL sformatowaną datę. Jeśli chcesz użyć notacji AM/PM, trzeba będzie użyć STR_TO_DATE pierwszy tak:

SELECT UNIX_TIMESTAMP(
    STR_TO_DATE('2011-12-21 02:20pm', '%Y-%m-%d %h:%i%p') 
); 
17

Choć @ a'r już podano poprawną odpowiedź, wciąż coś chciałbym dodać tutaj jest to, że dwie funkcje: STR_TO_DATE() funkcja, ciąg "ciąg daty" i ciąg "format daty" powinny mieć pasujące położenie "-" i ":".

na przykład, po 4 zapytania powrotu EXACT sam wynik 2014-05-28 11:30:10

SELECT STR_TO_DATE('2014-05-28 11:30:10','%Y-%m-%d %H:%i:%s'); 

SELECT STR_TO_DATE('20140528 11:30:10','%Y%m%d %H:%i:%s'); 

SELECT STR_TO_DATE('2014-05-28 113010','%Y-%m-%d %H%i%s') ; 

SELECT STR_TO_DATE('20140528 113010','%Y%m%d %H%i%s'); 

Uwaga: z 2 params do STR_TO_DATE() funkcję w każdym zapytanie zawiera pasujące miejsce docelowe dla "-" i ":"

Powiązane problemy