我从这一行得到错误
SELECT table.field
FROM table
WHERE table.month = 'october'
AND DATEDIFF(day, table.start_date, table.end_date) < 30
我的专栏中的日期格式为m-d-yy
我需要将其转换为其他格式吗?如果是这样的话?
使用MariaDB
答案 0 :(得分:10)
根据MariaDB DATEDIFF
的文档,只需要两个参数:
<强>语法强>
DATEDIFF(expr1,expr2)
<强>描述强>
DATEDIFF()
返回(expr1 – expr2)
表示为从一个日期到另一个日期的天数值。expr1
和expr2
是日期或日期和时间表达式。只有日期部分 这些值用于计算。
答案 1 :(得分:6)
@alex_b在DATEDIFF&amp; amp;的语法之间混淆是一种非常常见的观察。 TIMESTAMPDIFF函数。 关注link肯定有助于DATEDIFF&amp;的语法。 this page将列出MariaDB的父MySQL中可用的所有其他日期相关功能。\
参考上面的链接是一个摘要 -
TIMEDIFF(expr1,expr2)
expr1 - '2000:01:01 00:00:00'
expr2 - '2000:01:01 00:00:00.000001'
TIMEDIFF()返回表达为时间值的expr1 - expr2。 expr1和 expr2是时间或日期和时间表达式,但两者都必须是 同类型。
DATEDIFF(expr1,expr2)
expr1 - '2007-12-31 23:59:59'
expr2 - '2007-12-30'
DATEDIFF()返回expr1 - expr2,表示为从一天开始的值 约会到另一个。 expr1和expr2是日期或日期和时间 表达式。只有值的日期部分用于 计算
以下是我用它的场景 -
SET output_date = DATEDIFF(CURDATE(),input_date), ... 以上为我工作。祝你好运!
答案 2 :(得分:0)
datediff 的 DATEDIFF 返回一个值,该值是两个日期之间的天数差值。所以 datediff(mydate1, mydate2) 将返回 X 天数;其中 mydate1 应该大于 mydate2。我相信下面的 SQL 查询将帮助您达到您想要的结果。
SELECT table.field
FROM table
WHERE (table.month = 'october'
AND (datediff(table.end_date, table.start_date) < 30))