的時間轉換爲你的時區,你可以做財產以後這樣的:
CONVERT_TZ(
REPLACE(
SUBSTRING(date, 1, 19), # '1986-07-10T00:00:00' .000+02:00
'T',
' '
),
IF(
SUBSTRING(date, 24) = 'Z',
'+00:00',
SUBSTRING(date, 24) # 1986-07-10T00:00:00.000 '+02:00'
),
'Europe/Brussels'
)
注意從MySQL手冊
使用命名的時區,如「符合」或「歐洲/莫斯科,時區表必須正確設置。見Section 10.6, 「MySQL Server Time Zone Support」,用於說明
更新爲例
如果表中包含: SELECT * FROM so_peter;
+-------------------------------+
| tzdate |
+-------------------------------+
| 1986-07-10T00:00:00.000+02:00 |
| 1986-07-10T00:00:00.000Z |
| 2012-07-18T00:00:00.000+07:00 |
+-------------------------------+
此查詢的結果是:
SELECT tzdate FROM so_peter
WHERE CONVERT_TZ(REPLACE(SUBSTRING(tzdate, 1, 19), 'T', ' '), IF(SUBSTRING(tzdate, 24) = 'Z', '+00:00', SUBSTRING(tzdate, 24)), 'Europe/Brussels')
> '1986-07-10 01:00:00';
+-------------------------------+
| tzdate |
+-------------------------------+
| 1986-07-10T00:00:00.000Z |
| 2012-07-18T00:00:00.000+07:00 |
+-------------------------------+
什麼數據類型是MySQL的領域呢? – 2012-07-17 14:10:41
數據類型是varchar – Peter 2012-07-17 14:18:05