【问题标题】:Remove milliseconds in a datetime field删除日期时间字段中的毫秒数
【发布时间】:2015-01-03 03:50:09
【问题描述】:

我使用工作台将数据库从 MS SQL 转换为 MySql。有一个表有一个名为 ActivityDate (datetime(6)) 的列。出于某种原因,当该列被转换时,它的日期中有一个点,例如 (2013-05-03 11:20:20.420000)。

我想删除 .420000 或点后的任何数字。我试过做SUBSTRING_INDEX(ActivityDate,'.',1),但没用,最后一个数字就是.000000

我也试过UPDATEalerts.activitylogSETActivityDate= date_format(ActivityDate, '%Y-%m-%d %H:%i') WHEREactivitylog.ActivityLogID= 5;

同样的问题...最后我得到.000000

我该怎么做?

【问题讨论】:

  • 你确定列的数据类型是DATETIME而不是VARCHAR
  • 是的,我刚刚查了一下,上面写着 datetime(6)
  • 原因当然是 SQL Server 和 MySQL 都支持小数秒。 (虽然您需要 MySQL/5.6.4 或更高版本,但您很可能没有。)–
  • 试试select microsecond( time_column )

标签: mysql datetime substring


【解决方案1】:

只需更改列的数据类型即可排除小数部分。

ALTER TABLE alerts.activitylog MODIFY ActivityDate DATETIME;

类型 datetime(6) 表示 6 digits after the decimal point

有关详细信息,请参阅MySQL date and time fractional support 文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多