我从这一行得到了错误
SELECT table.field FROM table WHERE table.month = 'october' AND DATEDIFF(day, table.start_date, table.end_date) < 30
我的列中的日期格式为md-yy
我需要将其转换为其他格式吗?如果是这样的话?
使用MariaDB
根据MariaDB的文档,DATEDIFF
只有两个参数:
句法
DATEDIFF(expr1,expr2)
描述
DATEDIFF()
退货(expr1 – expr2)
表示为从一个日期到另一个日期的天数值.expr1
并且expr2
是日期或日期和时间表达式.在计算中仅使用值的日期部分.
@alex_b在DATEDIFF和TIMESTAMPDIFF函数的语法之间混淆是一种非常常见的观察.以下链接肯定有助于DATEDIFF的语法, 此页面将列出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是日期或日期和时间表达式.在计算中仅使用值的日期部分.
以下是我用它的场景 -
使用CURDATE作为'argument1'的当前日期
使用现有的varchar列作为'argument2'
使用SET命令更新列
SET output_date = DATEDIFF(CURDATE(),input_date),...上面为我工作.祝好运!