正在解析 SQL AM/PM 进行比较
Parsing SQL AM/PM for comparison
是否可以在 SQL 中解析 AM 和 PM 时间并使用它们进行比较?
例如,如下语句:
STR_TO_DATE(pack_time_min) <= DATE_ADD(NOW(), INTERVAL 1 HOUR)
数据如下:1:30pm
您可以这样解析 12 小时时间:
STR_TO_DATE('1:30pm', '%l:%i%p')
结果:
+----------------------------------+
| str_to_date('1:30pm', '%l:%i%p') |
+----------------------------------+
| 13:30:00 |
+----------------------------------+
这是一个 TIME 值,而不是 DATETIME。 NOW()
函数将 return 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 |
+----------------------------------------------------------------------+
是否可以在 SQL 中解析 AM 和 PM 时间并使用它们进行比较?
例如,如下语句:
STR_TO_DATE(pack_time_min) <= DATE_ADD(NOW(), INTERVAL 1 HOUR)
数据如下:1:30pm
您可以这样解析 12 小时时间:
STR_TO_DATE('1:30pm', '%l:%i%p')
结果:
+----------------------------------+
| str_to_date('1:30pm', '%l:%i%p') |
+----------------------------------+
| 13:30:00 |
+----------------------------------+
这是一个 TIME 值,而不是 DATETIME。 NOW()
函数将 return 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 |
+----------------------------------------------------------------------+