Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 澳大利亚时间_Mysql_Timestamp - Fatal编程技术网

Mysql 澳大利亚时间

Mysql 澳大利亚时间,mysql,timestamp,Mysql,Timestamp,我在数据库中有日期、时间字段,其中包含输入数据的本地日期、时间 我需要把那个时间转换成新南威尔士时间。但它并没有像预期的那样工作 set @state='Adelaide'; CASE WHEN (@state ='NNSW') THEN concat(`date`,' ',`time`) WHEN (@state ='SNSW') THEN concat(`date`,' ',`time`) WHEN (@state ='Sydney')THE

我在数据库中有日期、时间字段,其中包含输入数据的本地日期、时间

我需要把那个时间转换成新南威尔士时间。但它并没有像预期的那样工作

set @state='Adelaide';

    CASE WHEN (@state ='NNSW')  THEN concat(`date`,' ',`time`)  
    WHEN    (@state ='SNSW')  THEN concat(`date`,' ',`time`)  
    WHEN (@state    ='Sydney')THEN concat(`date`,' ',`time`)  
    ELSE CONVERT_TZ(concat(`date`,' ',`time`)  , 'UTC', 'Australia/NSW')    END 
        from tablea;
例如:

Date             Time            NSW Time
2015-01-29  00:15:00.000000 2015-01-29 11:15:00.000000
2015-01-31  00:15:00.000000 2015-01-31 11:15:00.000000
2015-01-29  00:15:00.000000 2015-01-29 11:15:00.000000
2015-01-27  00:15:00.000000 2015-01-27 11:15:00.000000
2015-01-28  00:15:00.000000 2015-01-28 11:15:00.000000

如果你看到与阿德莱德时间相比,新南威尔士州时间增加了11小时。但这些地区的时差只有30分钟。请告诉我如何解决此问题。

您正在从UTC转换为AEST-相差11小时。您想使用
Australia/South
而不是
UTC
作为旁注,如果您只是存储本地日期和州,那么每年会有一个小时的模糊数据。这对你来说可能不重要,但你应该仔细考虑。如果您的日期/时间值都是过去的,为了简单起见,您可能希望存储UTC值。pala uuu非常感谢。它起作用了。谢谢Jan Skeet的建议。