我正在从命令中解析输出,该输出产生了 Mon 2/5 16:36
的日期条目,然后将其加载到mySQL中。当前,awk
正在解析行并准备INSERT
离子的数据。理想情况下,我希望使用STR_TO_DATE
功能或类似功能来生成时间戳。
但是,没有一年的功能就无法正常工作。我无法说服正在产生这个日期给我一年的命令,尽管我确实知道这将来永远不会产生日期。我不确定如果日期> 1岁,我从未见过这种情况。因此,我希望这一年成为最新的一年,以使日期有效,但不比NOW()
更新。
是否有一种方法可以在纯SQL?
中这样做一些例子,仿佛是2018年2月5日,17:00:
- 太阳2/4 16:42-> 2018-02-04
- mon 2/5 16:59-> 2018-02-05
- mon 2/5 17:01-> 2007-02-05
- 星期二2/6 08:00-> 2007-02-06
- mon 2/6 16:59-> 2017-02-06
我让这个工作:
mysql> SELECT STR_TO_DATE(CONCAT('Sun 2/4 16:42', YEAR(NOW())), '%a %c/%e %H:%i%Y') AS datetime;
+---------------------+
| datetime |
+---------------------+
| 2018-02-04 16:42:00 |
+---------------------+
然后仅测试生成的datetime > NOW()
,如果是这样,请重新计算:
mysql> SELECT @datetime - INTERVAL 1 YEAR AS datetime;
+---------------------+
| datetime |
+---------------------+
| 2017-02-04 16:42:00 |
+---------------------+