当前位置:  开发笔记 > 后端 > 正文

调用本机函数'DATEDIFF'时参数计数不正确

如何解决《调用本机函数'DATEDIFF'时参数计数不正确》经验,为你挑选了2个好方法。

我从这一行得到了错误

SELECT table.field
FROM table
WHERE table.month = 'october'
AND DATEDIFF(day, table.start_date, table.end_date) < 30

我的列中的日期格式为md-yy

我需要将其转换为其他格式吗?如果是这样的话?

使用MariaDB



1> D Stanley..:

根据MariaDB的文档,DATEDIFF只有两个参数:

句法

DATEDIFF(expr1,expr2)

描述

DATEDIFF()退货(expr1 – expr2) 表示为从一个日期到另一个日期的天数值.expr1并且 expr2是日期或日期和时间表达式.在计算中仅使用值的日期部分.



2> nitinr708..:

@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),...上面为我工作.祝好运!

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有