为什么mysql中的DATEDIFF()无法正常工作?

时间:2017-04-10 09:34:48

标签: mysql sql

我有两个字段,startDate和endDate,它位于varchar中。我必须将它们转换为日期,然后我必须区别它们。

当我查询转换日期时,它可以正常工作。

查询是:

 select str_to_date(NewCrgs.PollDefination.endDate, '%d/%m/%Y') as
 endd, str_to_date(NewCrgs.PollDefination.startDate, '%d/%m/%Y') as
 startt FROM NewCrgs.PollDefination;

date converting result

但是当我想要获得日期差异时,它什么都没有显示出来。为什么呢?

查询是:

 SELECT DATEDIFF((str_to_date(NewCrgs.PollDefination.endDate,
 '%d/%m/%Y')),(str_to_date(NewCrgs.PollDefination.startDate,
 '%d/%m/%Y')));

2 个答案:

答案 0 :(得分:1)

使用以下代码:

SELECT 
    DATEDIFF (
        NewCrgs.PollDefination.endDate,
        NewCrgs.PollDefination.startDate
    ) AS datedifference 
FROM 
    NewCrgs.PollDefination;

注意最后的“AS”。

PS。我要注意你是否需要将varchars转换为日期。 This example也使用字符串。

答案 1 :(得分:1)

我必须以这种方式修改它。

SELECT 
    DATEDIFF (
        str_to_date(NewCrgs.PollDefination.endDate, '%d/%m/%Y'),
        str_to_date(NewCrgs.PollDefination.startDate, '%d/%m/%Y')
    ) AS datedifference 
FROM 
    NewCrgs.PollDefination;