【问题标题】:SQL between date with dd.mm.yyyy only matches on day日期与 dd.mm.yyyy 之间的 SQL 仅在当天匹配
【发布时间】:2017-04-19 12:55:32
【问题描述】:

我想使用 Datepicker 来选择我的数据库中的特定条目。

我面临的问题是,我从查询中获得的作为回复的条目仅针对日期的当天部分进行排序。

我使用日期格式(数据库中的varchar字段):

*dd.mm.yyyy hh:mm ($date = date("Y-m-d") . ' ' . date("H:i");)* 

例如:

 01.04.2016
 10.04.2016
 11.04.2016
 01.04.2017
 10.04.2017
 11.04.2017

获取条目的查询:

SELECT *
FROM order_date
WHERE date >= '10.04.2017' AND date <= '10.04.2017'

现在我希望只得到匹配的条目,但是 查询的结果是从第 10 天或第 11 天开始的所有四个表条目。甚至其中两个是在 2016 年。

正如我在其他帖子中看到的那样,如果日期设置为 yyyy-mm-dd 或 yyyymmdd,则 XX 和 YY 工作,但问题是我有一个包含大约 20k 个条目的数据库我需要一个日期选择器,所以我更喜欢使用日期的 givin 格式而不重写所有条目。

是否有可能在 dd.mm.yyyy 格式之间获得一个日期选择器?

高度赞赏的任何帮助

【问题讨论】:

  • 修复数据库比您想象的要容易。添加数据类型为date 的新列。从您现有的列中更新它。更新对现有列的所有引用,然后将其从表中删除。
  • 使用新列并更新/更改它的想法非常好,但问题是数据在不同的位置使用,所以我不能只更改格式而不在几个不同的地方替换它还有

标签: mysql sql


【解决方案1】:

试试这样的,

STR_TO_DATE('10.04.2017', '%d.%m.%Y')

SELECT *
FROM order_date
WHERE date >= STR_TO_DATE('10.04.2017', '%d.%m.%Y') AND date <= STR_TO_DATE('10.04.2017', '%d.%m.%Y')

【讨论】:

  • 感谢您的帮助,但我在我的数据库中使用它,到目前为止我只得到一个空结果。
  • 必须修改一些数据,但可以使用 STR_TO_DATE 保留我的格式 dd.mm.yyyy。谢谢
【解决方案2】:

您可以将列类型转换为 DATE,并使用 ORDER BY 子句。

【讨论】:

    【解决方案3】:

    使用STR_TO_DATE 函数可能会有所帮助。

    STR_TO_DATE('10.04.2017','%d.%m.%Y')
    

    【讨论】:

      【解决方案4】:

      围绕这个想法怎么样?

      SELECT * 
      FROM Mytable WHERE date
                       BETWEEN CONVERT(datetime,'10.04.2017',104 ) 
                           AND CONVERT(datetime,'10.04.2017',104 )
      

      【讨论】:

      • 感谢您的帮助。我只是在数据库中尝试了这个,但它告诉 #1064 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的 ''10.04.2017',106 ) AND CONVERT(datetime,'10.04.2017',106 )' 附近使用正确的语法——我不确定是否我可以在 mysql 数据库上使用 CONVERT()
      • 在 MySQL 中,CONVERT 的参数似乎是倒置的,所以是CONVERT('10.04.2017', datetime)。但不幸的是,您不能指定日期样式,因此它不能回答您的问题。正如其他人指出的那样,我认为 STR_TO_DATE 是正确的选择。
      猜你喜欢
      • 2017-05-05
      • 2014-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多