【问题标题】:MySQL convert date string to Unix timestampMySQL将日期字符串转换为Unix时间戳
【发布时间】:2012-06-23 10:16:24
【问题描述】:

如何将以下格式转换为 unix 时间戳?

Apr 15 2012 12:00AM

我从 DB 得到的格式最后似乎有 AM。 我尝试使用以下方法,但没有成功:

CONVERT(DATETIME, Sales.SalesDate, 103) AS DTSALESDATE,  
CONVERT(TIMESTAMP, Sales.SalesDate, 103) AS TSSALESDATE

where Sales.SalesDate value is Apr 15 2012 12:00AM

【问题讨论】:

  • 日期是否以文本形式存储在数据库中?
  • 真的是 MySQL 的问题吗?你的syntax 不建议这样做。
  • 看来问题是关于 MSSQL 的。

标签: mysql datetime timestamp unix-timestamp


【解决方案1】:

您当然必须使用STR_TO_DATE 将您的日期转换为 MySQL 标准日期格式,并使用UNIX_TIMESTAMP 从中获取时间戳。

鉴于您的日期格式,例如

UNIX_TIMESTAMP(STR_TO_DATE(Sales.SalesDate, '%M %e %Y %h:%i%p'))

会给你一个有效的时间戳。查看STR_TO_DATE 文档以获取有关格式字符串的更多信息。

【讨论】:

    【解决方案2】:

    以下是如何DATETIME 转换为 UNIX 时间戳的示例:
    SELECT UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p'))

    以下是如何更改日期格式的示例:
    SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p')),'%m-%d-%Y %h:%i:%p')

    文档: UNIX_TIMESTAMP, FROM_UNIXTIME

    【讨论】:

    • 谢谢。这行得通。这也可以用于其他语句,如更新、删除、插入等
    • 经过这么多试验后,您的解决方案对我有用:select * from (SELECT order_increment_id, FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE(order_date, '%d %M %Y %h:%i:%s %p')),'%Y-%m-%d') as order_date, email_sent FROM `packingslip_header` where email_sent=0) t where order_date >= '2019-11-13' ORDER BY order_increment_id ASC这是我拥有31 Oct 2017 4:16:49 pm的日期,所以我需要使用%d %M %Y %h:%i:%s %p作为STR_TO_DATE
    【解决方案3】:

    对于当前日期,只需在您的 MySQL 查询中使用 UNIX_TIMESTAMP()

    【讨论】:

    • 不回答原帖中的问题。
    • 它适用于只需要在查询中转换当前日期、回答部​​分问题、不需要你的看门人埃文的人,人们已经投票表明他们需要这个跨度>
    • 原问题要求转换特定格式;这不是在回答这个问题。如果您进行编辑以澄清这一点,我将取消反对票。
    • 已在第一行明确说明这是针对当前日期的。
    • 我进行了编辑以澄清此响应与原始问题的关系并举例说明。
    【解决方案4】:

    来自http://www.epochconverter.com/

    SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())
    
    My bad, SELECT unix_timestamp(time) Time format: YYYY-MM-DD HH:MM:SS or YYMMDD or YYYYMMDD. More on using timestamps with MySQL:
    
    http://www.epochconverter.com/programming/mysql-from-unixtime.php
    

    【讨论】:

    • 这个答案是针对 MSSQL 的(虽然这个问题有些混乱)。
    猜你喜欢
    • 2011-03-16
    • 1970-01-01
    • 2016-12-18
    • 2019-07-30
    • 2011-09-23
    • 1970-01-01
    • 2022-01-21
    • 2012-09-01
    相关资源
    最近更新 更多