【问题标题】:Year change not give result in mysql server年份更改未在 mysql 服务器中给出结果
【发布时间】:2014-01-28 23:42:52
【问题描述】:

在这个问题中,我有 2 个查询

1) SELECT * FROM order WHERE order-date BETWEEN '12/01/2013' AND '12/31/2013'

这个查询从表中给出正确的数据。

但在 2 个查询中

2) SELECT * FROM order WHERE order-date BETWEEN '12/01/2013' AND '01/10/2014'

这个查询不显示表中的任何日期,怎么不显示任何数据,mysql服务器有一些年份变化问题。

请帮帮我。

【问题讨论】:

  • 不要使用BETWEEN to compare date/time/timestamps(鉴于您可以在MySQL中指定时间戳精度,这仍然适用)。 order-date的类型/格式是什么?

标签: mysql sql date select


【解决方案1】:

您必须将字符串转换为日期才能比较两个日期,否则它会被视为字符串。为此,您必须使用 STR_TO_DATE() 函数

试试这个:

SELECT * 
FROM `order` o
WHERE STR_TO_DATE(o.orderDate, '%m/%d/%Y') BETWEEN '2013-12-01' AND '2013-12-31'

SELECT * 
FROM `order` o
WHERE STR_TO_DATE(o.orderDate, '%m/%d/%Y') BETWEEN '2013-12-01' AND '2014-01-10'

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-03-26
  • 1970-01-01
  • 2020-11-07
  • 1970-01-01
  • 2015-11-25
  • 1970-01-01
  • 2015-01-01
  • 1970-01-01
相关资源
最近更新 更多