SQL时间处理datediff的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL时间处理datediff的问题相关的知识,希望对你有一定的参考价值。

我看有人给出datediff是三个参数,但是我的sql只认datediff为两个参数,这样我想计算月什么的很难了,请问这个问题是怎么回事

DATEDIFF(datepart,startdate,enddate)返回两个日期之差。startdate 和 enddate 参数是合法的日期表达式。
datepart 参数可以是 yyy,mm,dd 之类的
两个参数的省略了 datepart 返回两个日期的天数追问

mysql> SELECT DATEDIFF(yyy,'2007-12-30','2008-12-30') ;
1582 - Incorrect parameter count in the call to native function 'DATEDIFF'

你看怎么错误了

追答

mysql不支持三个参数的
只使用DATEDIFF(startdate,enddate)

参考技术A SELECT DATEDIFF(DAY,'2007-12-30','2008-12-30') 天
SELECT DATEDIFF(MONTH,'2007-12-30','2008-12-30') 月
SELECT DATEDIFF(YEAR,'2007-12-30','2008-12-30') 年
具体要查询什么只要修改第一个参数就行了追问

mysql> SELECT DATEDIFF(YEAR,'2007-12-30','2008-12-30') ;
1582 - Incorrect parameter count in the call to native function 'DATEDIFF'
你看怎么错误了啊

追答

我的是sql server 的

追问

我的是mysql,那个怎么弄

追答

mysql里datediff 在我印象里好像只能获取天数差

参考技术B 什么数据库,

以上是关于SQL时间处理datediff的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于时间差查询的一个小技巧

SQL基本操作——日期函数

sql求时间差,精确到秒分时

SQL中计算时间差datediff()

多个级别的 SQL Datediff [关闭]

SPARK SQL 中的 DATEDIFF