Mysql SQL查询DATEDIFF返回NULL
我正在mySQL数据库中编写这个查询。列表Mysql SQL查询DATEDIFF返回NULL,mysql,datediff,Mysql,Datediff,我正在mySQL数据库中编写这个查询。列表中的表有两列StartDate和EndDate。我想使用DATEDIFF返回持续时间即这两个日期之间的天数。我的问题是: SELECT DATEDIFF(StartDate, EndDate) as 'Duration' FROM listing; 该表在Duration列中返回NULL 如果我写 SELECT DATEDIFF(day, StartDate, EndDate) as 'Duration' FROM listing; 返回 Error
中的表有两列StartDate
和EndDate
。我想使用DATEDIFF
返回持续时间
即这两个日期之间的天数。我的问题是:
SELECT DATEDIFF(StartDate, EndDate) as 'Duration' FROM listing;
该表在Duration列中返回NULL
如果我写
SELECT DATEDIFF(day, StartDate, EndDate) as 'Duration' FROM listing;
返回
Error Code: 1582. Incorrect parameter count in the call to native function 'datediff' 0.000 sec
任何帮助都将不胜感激。两个参数是正确的。如果设置为NULL,可能是因为这些列中的值不是date或datetime类型
从MySql文档:
DATEDIFF(expr1,expr2)
DATEDIFF() returns expr1 – expr2 expressed as a value in days from one date to the other. expr1 and expr2 are date or date-and-time expressions. Only the date parts of the values are used in the calculation.
mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
-> 1
mysql> SELECT DATEDIFF('2010-11-30 23:59:59','2010-12-31');
-> -31
问题是DATEDIFF()
希望日期的格式为YYYYMMDD
,而我给出的StartDate
和EndDate
的列输入是MMDDYYYY
。我把它改成了YYYYMMDD
,它成功了。因此,以下日期为YYYYMMDD格式的表达式工作正常
SELECT DATEDIFF(StartDate, EndDate) as 'Duration' FROM listing;
startdate和enddate的两个值是什么?这些列的数据类型是什么?嘿,Brad,问题在于我给出的日期格式。应该是YYYYMMDD,我给了MMDDYYYY。我改变了它,它成功了。