【问题标题】:MySql, combining date and time column into a time stampMySql,将日期和时间列组合成时间戳
【发布时间】:2011-05-06 18:30:56
【问题描述】:

我猜这相对简单,但我不确定语法。我有要合并到时间戳列的日期和时间列。我将如何使用 select 查询这个?

【问题讨论】:

    标签: mysql datetime time timestamp


    【解决方案1】:

    concat('2021-12-31', ' ', '07:00:00')

    它在 INSERT 过程中工作。

    【讨论】:

    【解决方案2】:

    或者您可以使用内置的TIMESTAMP(date,time) 函数。

    那么你会从 Orders 表中执行类似的操作...

    SELECT OrderNumber, TIMESTAMP(date,time) as OrderTS, SalesPersonID
    FROM Orders
    

    【讨论】:

    • 这个备受赞誉的答案看起来更像是一条评论。如果您打算保留这篇文章作为答案,请花时间加强它,使其不仅仅是一个仅链接的答案。
    【解决方案3】:

    Mysql 似乎没有 datetime('2017-10-26', '09:28:00') 这样的 datetime 构造函数。因此,您必须将组件部分视为字符串并使用字符串连接功能(注意 mysql 没有用于字符串连接的 || 运算符)。如果您想要 datetime 类型,则必须强制转换它。

    concat(datefield,' ',timefield) as date
    
    select cast(concat('2017-10-26', ' ', '09:28:00') as datetime) as dt;
    

    【讨论】:

    • 我需要在今天日期的约束中使用它,这成功了select * from my_table where my_date = cast(concat(CURDATE(), ' ', '13:00:00') as datetime)
    【解决方案4】:

    O.P.确实说过SELECT,但如果有人想添加时间戳列

    ALTER TABLE `t` ADD COLUMN `stamp` TIMESTAMP;
    UPDATE `t` SET `stamp` = STR_TO_DATE(CONCAT(`Date`, ' ', `Time`), '%m/%d/%Y %H:%i:%s');
    

    根据口味调整format strings

    【讨论】:

      【解决方案5】:
      SELECT * FROM tablename WHERE TIMESTAMP(datecol, timecol) > '2015-01-01 12:00:00';
      

      【讨论】:

        【解决方案6】:

        24小时制

        TIMESTAMP(Date, STR_TO_DATE(Time, '%h:%i %p'))
        

        【讨论】:

          【解决方案7】:

          如果可以使用内置函数,就使用它。 这里的任何方式都是在给定时间戳之间查找记录的示例。

          SELECT `id` FROM `ar_time` WHERE TIMESTAMP(`cdate`,`ctime`) BETWEEN fromTimeStamp AND nowTimeStamp;
          

          【讨论】:

            猜你喜欢
            • 2012-01-22
            • 2013-02-15
            • 2013-06-16
            • 1970-01-01
            • 2013-09-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多