我正在解析命令的输出,该命令生成Mon 2/5 16:36
形式的日期条目,并将其加载到mysql中。目前,awk
正在解析这些线并为INSERT
ion准备数据。理想情况下,我想使用STR_TO_DATE
函数或类似函数来生成自己的时间戳。
但是,该功能在没有一年的情况下不起作用。我不能说服产生这个日期的命令给我一年,虽然我知道它将来永远不会产生约会。我不确定如果日期大于1岁会发生什么,因为我从未见过这种情况。因此,我希望这一年是最新的一年,使得日期有效,但并不比NOW()
更新。
有没有办法在纯SQL中执行此操作?
一些例子,如同于2018年2月5日17:00一样被解决:
我得到了这个工作:
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 |
+---------------------+