解析SQL AM / PM以进行比较

问题描述 投票:1回答:1

是否可以在SQL中解析AM和PM时间并将它们用于比较?

例如,如下所示的语句:

STR_TO_DATE(pack_time_min) <= DATE_ADD(NOW(), INTERVAL 1 HOUR)

有这样的数据:1:30pm

mysql date-parsing
1个回答
2
投票

您可以这样解析12小时:

STR_TO_DATE('1:30pm', '%l:%i%p')

结果:

+----------------------------------+
| str_to_date('1:30pm', '%l:%i%p') |
+----------------------------------+
| 13:30:00                         |
+----------------------------------+

这是一个TIME值,而不是DATETIME。 NOW()函数将返回DATETIME,因此您应该使用CURRENT_TIME()

mysql> select current_time() + interval 1 hour;
+----------------------------------+
| current_time() + interval 1 hour |
+----------------------------------+
| 02:57:13                         |
+----------------------------------+

然后,您可以将TIME与TIME进行比较。

mysql> select str_to_date('1:30pm', '%l:%i%p') <= current_time() + interval 1 hour;
+----------------------------------------------------------------------+
| str_to_date('1:30pm', '%l:%i%p') <= current_time() + interval 1 hour |
+----------------------------------------------------------------------+
|                                                                    0 |
+----------------------------------------------------------------------+
© www.soinside.com 2019 - 2024. All rights reserved.