Incorrect parameter count in the call to native function 'DATEDIFF'

后端 未结 2 1476
星月不相逢
星月不相逢 2020-12-11 01:06

I get the error from this line

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


        
相关标签:
2条回答
  • 2020-12-11 01:31

    @alex_b it is a very common observation to get confused between the syntaxes of the DATEDIFF & TIMESTAMPDIFF functions. Following link will certainly help with the syntax of DATEDIFF & this page will list all the others date related functions available in MariaDB's parent MySQL.\

    Referencing the links above below is a summary -

    TIMEDIFF(expr1,expr2)
    expr1 - '2000:01:01 00:00:00'
    expr2 - '2000:01:01 00:00:00.000001'
    

    TIMEDIFF() returns expr1 − expr2 expressed as a time value. expr1 and expr2 are time or date-and-time expressions, but both must be of the same type.

    DATEDIFF(expr1,expr2)
    expr1 - '2007-12-31 23:59:59'
    expr2 - '2007-12-30'
    

    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.

    Below is the scenario I used it for -

    • using CURDATE for current date as 'argument1'
    • using existing varchar column as 'argument2'
    • using SET command to update a column

    SET output_date = DATEDIFF(CURDATE(),input_date), ... above worked for me. Good luck!

    0 讨论(0)
  • 2020-12-11 01:33

    According to the documentation for MariaDB DATEDIFF only takes two arguments:

    Syntax

    DATEDIFF(expr1,expr2)

    Description

    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.

    0 讨论(0)
提交回复
热议问题