【问题标题】:DateDiff SQL Error日期差异 SQL 错误
【发布时间】:2013-09-15 02:39:44
【问题描述】:

我的 SQL 语法有问题。但我无法确定语法有什么问题。 语法是:

SELECT * FROM Inmuebles WHERE DATEDIFF(day, FechaIngreso, getdate()) <= 30

我之所以在 DATEDIFF 函数中加入三个参数,是因为我在这里阅读过:DATEDIFF

这个查询的执行返回了以下错误:

#1582 - 调用本机函数 'DATEDIFF' 时的参数计数不正确

然后谷歌这个错误,我发现了以下帖子:

Error in calculating age in MySQL?

阅读了这篇文章,我决定以这种方式留下查询:

SELECT * FROM Inmuebles WHERE DATEDIFF(FechaIngreso, getdate()) <= 30

但不幸的是,这个错误让我绊倒了:

#1547 - mysql.proc 的列数错误。预计 20 个,找到 16 个。表可能已损坏

感谢您花时间阅读,希望您能原谅我写英语的糟糕方式,并能帮助解决这个问题。 问候!

【问题讨论】:

    标签: mysql sql syntax-error datediff


    【解决方案1】:

    您正在使用 MS SQL Server 语法:

    GETDATE() = MS SQL Server

    NOW()/CURDATE() = MySQL

    如果你想DELETE 从上面的查询返回的记录应该是:

    DELETE FROM Inmuebles 
    WHERE DATEDIFF(FechaIngreso, NOW()) <= 30;
    

    【讨论】:

    • 太好了,你找到了答案,非常感谢,如果我想从表中删除结果的记录,语法会怎样?再次感谢您!
    猜你喜欢
    • 2014-01-17
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 2018-05-09
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多