很多人写网站代码时候,一开始都是ACCESS的。

因为它是一个很不成熟的系统,所以在大应用下会出问题。

所以网站发展的好的话都会换成SQL的数据库。

结果问题来了。

比如:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]'now' 不是可以识别的 函数名。

有人认为出现这样的问题很简单。就是SQL不认识now()函数

其实不是的。SQL认识NOW(),只是在SQL的数据结构下他不能接受她。

我们来看看代码:

Conn.Execute("INSERT INTO xc_jslog (jsname,content,log_date,style) VALUES ('"&jsname&"','"&n&"',now(),3)")

now()这样写就不认识,但是这样写SQL就认识了。

sjadd=now()

Conn.Execute("INSERT INTO xc_jslog (jsname,content,log_date,style) VALUES ('"&jsname&"','"&n&"','"&sjadd&"',3)")

看明白了么?只是多了一个转换。其实SQL需要一组'"&&"'符号,而now加上这组符号就不是函数了。

SQL中,完成时间转换和获取的是GETDATE函数

sqlserver的时间函数是getDate(),具标识时间类型的不能加引号。

使用now的话要做成变量的形式才可以。

即:conn.execute("delete from online where datediff(s,datetime,getDate()) > 60")

或:conn.execute("delete from online where datediff('s',datetime,'" + now + "') > 60")

但是80%的人会报错,说getdate不认识。

因为还有其他错误,就是前面的S。要有引号。

SQL非常看重代码的合法性。不错哦。。。

所以就用最上面的或者+now()+吧。
写的累死了,到此结束吧。

OA的自动发信要完成了。

哈哈。