的时间转换为你的时区,你可以做财产以后这样的:
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