Mysql / PHP:从所选输入日期字段中减去1天

时间:2014-08-29 14:32:30

标签: php mysql sql date

我有一个输入字段,如果用户选择日期(格式为YYYY-MM-DD),则页面重新加载(已经使用jquery / ajax),然后它应该从日期前一天获得结果用户已插入该字段。

我想从所选日期用户输入前一天的db中获取一个值。

在mysql db中使用DATE,也许最好使用时间戳?更容易修改和使用?

2 个答案:

答案 0 :(得分:0)

您可以使用:

DATE(DATE_ADD('2014-08-29', INTERVAL -1 DAY))

答案 1 :(得分:0)

如果您只有YYYY-MM-DD个值,那么使用DATE(SQL数据类型)列就可以了。对于存储具有日期和时间组件的值(即YYYY-MM-DD HH24:MI:SS),我们将使用DATETIMETIMESTAMP数据类型作为列。

使用这些SQL数据类型基本相同。选择使用哪种数据类型实际上是为我们需要表示的实际数据选择最合适的类型。

对于DATEDATETIMETIMESTAMP数据类型列,要在指定值之前提取值为的行,我们可以使用谓词像这样:

  FROM mytable t
 WHERE t.mydatecol >= '2014-08-27' + INTERVAL -1 DAY
   AND t.mydatecol <  '2014-08-27'

(同样的模式可以扩展到指定值附近的任何范围,在指定值之前和/或之后,以及任意数量的月,日,分钟等。)

对于DATE列,要返回前一天的行,我们希望在列中匹配单个值,我们可以使用相等比较(而不是范围比较),例如

  FROM mytable t
 WHERE t.mydatecol = '2014-08-27' + INTERVAL -1 DAY