我有一个输入字段,如果用户选择日期(格式为YYYY-MM-DD),则页面重新加载(已经使用jquery / ajax),然后它应该从日期前一天获得结果用户已插入该字段。
我想从所选日期用户输入前一天的db中获取一个值。
在mysql db中使用DATE,也许最好使用时间戳?更容易修改和使用?
答案 0 :(得分:0)
您可以使用:
DATE(DATE_ADD('2014-08-29', INTERVAL -1 DAY))
答案 1 :(得分:0)
如果您只有YYYY-MM-DD
个值,那么使用DATE
(SQL数据类型)列就可以了。对于存储具有日期和时间组件的值(即YYYY-MM-DD HH24:MI:SS
),我们将使用DATETIME
或TIMESTAMP
数据类型作为列。
使用这些SQL数据类型基本相同。选择使用哪种数据类型实际上是为我们需要表示的实际数据选择最合适的类型。
对于DATE
,DATETIME
和TIMESTAMP
数据类型列,要在指定值之前提取值为的行,我们可以使用谓词像这样:
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