MySQL日期和时间函数不存在。

6
我已经安装了WampServer 2.0和MySQL 5.1.33。
我可以执行数字和字符串函数,例如: SELECT ABS(-2) 或者 SELECT LOWER('ASD') 但是对于日期和时间函数,例如: SELECT CURDATE() 或者 SELECT NOW() 我得到的结果是:
Error : no such function: CURDATE

我是否做错了什么,需要安装什么吗?

有关何处开始调查的任何帮助?


你尝试重新安装WAMP了吗?可能是安装过程中出现了错误。 - Adnan
@Adnan:目前还没有。我想避免这种情况,但如果我找不到其他解决方案,最终我可能不得不这样做。谢谢。 - Peter Lang
4个回答

20

MySQL没有显示“无此函数”的错误消息。我在整个MySQL 5.1源代码树中执行了grep操作,这个字符串没有出现过(除了一个注释)。

我的想法是您没有使用MySQL,而是使用SQLite。因为当我运行SQLite命令行shell时,我可以重现该错误:

$ sqlite3
sqlite> select curdate();
Error: no such function: curdate
sqlite> select now();
Error: no such function: now

在SQLite中,获取当前日期的function非常简单,只需使用date()函数:
sqlite> select date();
2010-01-02

1
我正在寻找适用于mysql和sqlite之间的东西,而这正是它。谢谢!顺便说一句,至少SQLite3也有datetime(),并且格式与MySQL的now()实现匹配。 - Aaron R.

1
许多函数在SQlite和MySQL(或任何其他产品)中是不同的(如果您除了核心函数以外,大多数函数提供相同的功能,但具有不同的语法)。有一个开源的“兼容性库”,在SQLite中实现了大量MySQL函数 在堪萨斯州立大学CIS网站上

0

我的倾向是运行一个mysql修复安装。如果那个方法不管用,我会尝试重新安装wamp。


0
如果SQLite具有与SQL相同的功能,那将是令人惊叹的。但对于带有日期比较的查询类型,可以使用现有的SQLite函数。
我能够执行查询的示例如下: 使用接口类型类声明我的ObjectDAO:'PartidoDAO'。
@Query("select * from partido where fpartido>=DATE() and epartido = 'Santiago Bernabeu'  ORDER BY fpartido LIMIT 1")
    Partido getMoreRecentPartido();

如果您想获取有关日期数据类型相关函数的更多信息,请查阅网络资源,我邀请您查看此资源。 SQLite日期函数


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接