【问题标题】:CURRENT_TIMESTAMP in MySql is updating the table with incorrect formatMySql 中的 CURRENT_TIMESTAMP 正在更新格式不正确的表
【发布时间】:2020-10-29 17:14:45
【问题描述】:

我的 java 应用程序中有一个更新查询:

update STAGE_TBL SET LAST_UPDATE_DTTM = CURRENT_TIMESTAMP where ID = 8

我将LAST_UPDATE_DTTM 设为2020-07-08-04.15.37 +0530 CST,但我需要2020-10-08 08:06:53.812136 (YYYY-MM-DD HH:MM:SS:ss:Ss) EST 格式。

怎么做?

【问题讨论】:

  • 检查LAST_UPDATE_DTTM在表结构中是否定义为TIMESTAMP(6)(不是单个TIMESTAMP)。使用CURRENT_TIMESTAMP(6) 而不是单个CURRENT_TIMESTAMP

标签: java mysql timestamp


【解决方案1】:

您是否尝试过使用 CURRENT_TIMESTAMP(6) 之类的东西? 这应该为您提供所需格式的时间戳。 您可以在this blog postMYSQL DOCs 中找到有关CURRENT_TIMESTAMP 函数的更多信息。


要将时间戳转换为 EST,您可以使用以下命令:

CONVERT_TZ( UTC_TIMESTAMP, '+0:00', '-4:00');

或者:

CONVERT_TZ( UTC_TIMESTAMP, 'UTC', 'EST');

代替CURRENT_TIMESTAMP。有关 MYSQL CONVERT_TZ 函数的更多信息,请转到 here

这里你使用 MYSQLs UTC 时间戳来获得一个比 UTC 时间早 4 小时的时间戳。

要使第二种方法起作用,您需要将时区表加载到 mysql 中:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

您可以在answer 中找到有关如何在不同操作系统上将时区表加载到 MYSQL 中的更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-03
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 2020-08-15
    • 1970-01-01
    相关资源
    最近更新 更多