从完整日期开始推断

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

我正在解析命令的输出,该命令生成Mon 2/5 16:36形式的日期条目,并将其加载到mysql中。目前,awk正在解析这些线并为INSERTion准备数据。理想情况下,我想使用STR_TO_DATE函数或类似函数来生成自己的时间戳。

但是,该功能在没有一年的情况下不起作用。我不能说服产生这个日期的命令给我一年,虽然我知道它将来永远不会产生约会。我不确定如果日期大于1岁会发生什么,因为我从未见过这种情况。因此,我希望这一年是最新的一年,使得日期有效,但并不比NOW()更新。

有没有办法在纯SQL中执行此操作?

一些例子,如同于2018年2月5日17:00一样被解决:

  • sun 2/4 16:42 --> 2018-02-04
  • 我的2/5 16:59 - > 2018-02-05
  • 我的2/5 17:01 - > 2007-02-05
  • 你的2/6 8 am - > 2007-02-06
  • 我的2/6 16:59 - > 2017-02-06
mysql datetime awk
1个回答
0
投票

我得到了这个工作:

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 |
+---------------------+
© www.soinside.com 2019 - 2024. All rights reserved.