MySQL将日期字符串转换为Unix时间戳

Posted

技术标签:

【中文标题】MySQL将日期字符串转换为Unix时间戳【英文标题】:MySQL convert date string to Unix timestamp 【发布时间】: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 的。 【参考方案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 的(虽然这个问题有些混乱)。

以上是关于MySQL将日期字符串转换为Unix时间戳的主要内容,如果未能解决你的问题,请参考以下文章

mysql 中怎么把时间戳转换成正常时间

mysql 中怎么把时间戳转换成正常时间

MySQL日期 字符串 时间戳互转

mysql 时间与字符串相互转换

php怎么将指定日期转换为时间戳

将 Unix 时间戳转换为日期字符串