2012-09-25 31 views

回答

1

您正在使用什麼版本的MySQL?作爲SQLFiddle這兩個查詢測試由MySQL 5.5.27工作

SELECT UNIX_TIMESTAMP(CAST('2012-05-10 00:00:00' AS DATETIME)) As UnixTime; 
SELECT UNIX_TIMESTAMP(CAST('2012-05-10' AS DATE)) As UnixTime; 

SQLFiddle Demo

1

我不知道您有什麼問題的,可是以下工作正常:

CREATE TABLE ex (dt VARCHAR(20)); 
INSERT INTO ex SET dt = '2012-05-10'; 

SELECT 
UNIX_TIMESTAMP('2012-05-10') ex1, 
UNIX_TIMESTAMP(dt) ex2, 
UNIX_TIMESTAMP(CAST('2012-05-10' AS DATE)) ex3, 
UNIX_TIMESTAMP(CAST(dt AS DATE)) ex4 
FROM ex; 

回報:

+------------+------------+------------+------------+ 
| ex1  | ex2  | ex3  | ex4  | 
+------------+------------+------------+------------+ 
| 1336633200 | 1336633200 | 1336633200 | 1336633200 | 
+------------+------------+------------+------------+ 

正如你所看到的,沒有必要CAST()如果字符串的格式爲YYYY-MM-DDYYYY-MM-DD HH:MM:SS,則MySQL會將此格式的字符串隱式轉換爲DATE s。

請參閱http://sqlfiddle.com/#!2/1a215/3