【问题标题】:Remove incomplete ISO dates from SQL query?从 SQL 查询中删除不完整的 ISO 日期?
【发布时间】:2013-01-18 07:38:34
【问题描述】:

我正在用 Perl 编写一个应用程序来处理来自 MySQL 数据库的数据。我只需要选择具有有效 ISO 格式日期 YYYY-MM-DD 的记录。但是很多记录没有月份或日期的值,所以它们就像这样 1999-00-00。我需要过滤掉这些。

我可以用 Perl 做到这一点,但我认为最好的方法是在 SQL 语句中使用 REGEXP 函数;但是我不确定这是否是最好的方法;我也不知道如何正则表达式数据。

感谢您的任何建议!

【问题讨论】:

  • 一旦你这样做了,考虑将日期存储为日期而不是字符串。
  • @DanBracuk:mysql 允许在其日期字段中存储部分日期,其中任何部分都可能为 0。这有时很方便,但通常不方便。

标签: mysql sql perl date iso


【解决方案1】:

你总是可以使用:

where DATE_COL not like '%-00-00'

【讨论】:

  • where year(DATE_COL) and month(DATE_COL) and dayofmonth(DATE_COL)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-25
  • 2014-12-25
  • 2016-11-30
相关资源
最近更新 更多