mysql - 从不完整的日期推断年份

标签 mysql datetime awk

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

但是,这个功能没有一年就无法工作。我无法说服生成此日期的命令给我一年的时间,尽管我确实知道它将来永远不会生成日期。我不太确定如果约会超过 1 岁会发生什么,因为我从未见过这种情况发生。因此,我希望该年份是最新的年份,这样日期有效,但不比 NOW() 新。

有没有办法用纯 SQL 来做到这一点?

一些示例,按照 2018 年 2 月 5 日 17:00 进行解析:

  • 周日2月4日16:42 --> 2018-02-04
  • 2月5日星期一 16:59 --> 2018-02-05
  • 2月5日星期一 17:01 --> 2007-02-05
  • 2/6 星期二 08:00 --> 2007-02-06
  • 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 |
+---------------------+

关于mysql - 从不完整的日期推断年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48632129/

相关文章:

mysql - UNION ALL 对最终结果进行排序

mysql - 不同表列之间的差异

linux - AWK/bash 如何在 AWK 中包含文件名

java - 解析scala中的日期(java时间api)

bash - 通过搜索从字符串中提取 2 个字段

Linux awk 列比较

c# - 在 C# 中创建数据对象来保存表中的值

php - 使用 PHP HTML 表单的 MySQL 表更新不起作用

datetime - 具有两个时间维度的R时间序列对象

python - Django如何管理只有小时和分钟的格式时间