【问题标题】:MYSQL CONCAT_WS and UNIX_TIMESTAMPMYSQL CONCAT_WS 和 UNIX_TIMESTAMP
【发布时间】:2014-04-13 19:40:32
【问题描述】:

您好,我有日期和时间表:

date               time 
09-03-2014  06:17:15
09-03-2014  06:23:06
09-03-2014  06:28:57
09-03-2014  06:40:39

我会做这个:

SELECT CONCAT_WS(' ',date,time) AS newtime FROM hive96
newtime
09-03-2014 06:17:15
09-03-2014 06:23:06
09-03-2014 06:28:57
09-03-2014 06:40:39

稍后我输入以下代码:

SELECT unix_timestamp('2008-06-19 16:25:15'); <==newtime

我想收集两个查询。我想要newtime 输入 unix 时间戳查询。

谢谢

【问题讨论】:

  • 看起来您将date 列存储为VARCHAR 而不是正确的DATETIME 类型。如果您有能力纠正此问题,建议您这样做。

标签: mysql unix-timestamp concat-ws


【解决方案1】:

正如 Michael Berkowski 所说,最好将日期列的类型从 varchar 更改为 date,将时间列的类型更改为 time。如果做不到,则必须将字符串转换为datetime。 MySQL 提供了函数STR_TO_DATE() 来做到这一点:

SELECT UNIX_TIMESTAMP( 
    STR_TO_DATE( 
        CONCAT_WS(' ', date, time), 
        '%d-%m-%Y %H:%i:%s')
    )
);

查看手册:STR_TO_DATEDATE_FORMAT 获取格式字符串

【讨论】:

    猜你喜欢
    • 2013-01-10
    • 1970-01-01
    • 2013-01-28
    • 2015-04-16
    • 1970-01-01
    • 2012-03-18
    • 2010-10-21
    • 2011-08-17
    • 2023-03-29
    相关资源
    最近更新 更多