加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – MS Access:如何在DateTime字段中插入NULL

发布时间:2020-12-13 13:03:22 所属栏目:PHP教程 来源:网络整理
导读:我有一个MS Access数据库(无法忍受),并通过 PHP(ODBC)与它通信. 我必须在INSERT语句中包含一个DateTime字段.此字段在Access中未定义为“必需”,这意味着它确实可以为NULL,并且实际上Access数据库中的某些行已经为NULL. 我遇到的问题很简单:如何通过SQL插入N
我有一个MS Access数据库(无法忍受),并通过 PHP(ODBC)与它通信.

我必须在INSERT语句中包含一个DateTime字段.此字段在Access中未定义为“必需”,这意味着它确实可以为NULL,并且实际上Access数据库中的某些行已经为NULL.

我遇到的问题很简单:如何通过SQL插入NULL?我在网上找到的所有结果都是从Visual Basic或C#中解决的,而我在PHP中通过ODBC使用SQL.

我已经尝试过以下方法:

INSERT INTO table_name (datetime_field) VALUES (NULL)
INSERT INTO table_name (datetime_field) VALUES (#NULL#)
INSERT INTO table_name (datetime_field) VALUES ('NULL')
INSERT INTO table_name (datetime_field) VALUES ('#NULL#')
INSERT INTO table_name (datetime_field) VALUES ('')

(我的查询中还有大约30个其他列.)

当我尝试”或NULL时,我得到的确切错误是’条件表达式中的数据类型不匹配’.其他人返回一个解析错误(可以理解).

请注意,我必须在INSERT语句中包含该字段.该字段具有默认值,但在许多情况下,我正在传输的原始数据具有NULL,在目标数据库中也必须为NULL.

提前致谢!

请尝试以下方法.这个对我有用:
INSERT INTO sometable ( somedate,somethingelse )
SELECT Null AS Expr1,"foo" AS Expr2;

基本上,您在select查询中包装null,并让SQL弄清楚如何将其表示为插入.

– 编辑 –

这应该也有效:

INSERT INTO sometable ( somedate,somethingelse )
values (Null,"foo");

但由于某种原因,它不适用于我的默认安装.

在我预感,我将我的数据库从ANSI-89切换到ANSI-92,并且VALUES方法开始工作.我把它换回ANSI-89,它仍然有效.不仅如此,在我创建的任何新数据库中,它现在也可以工作.奇怪……安装中的某些东西必须通过来回切换来改变(并坚持),而不仅仅是ANSI-89/92.这似乎是我们得到不同结果的原因.

您可以通过转到Office徽标 – >访问选项 – > OBJECT DESIGNERS-> QUERY DESIGN来切换数据库.更改SQL Server兼容语法(ANSI 92) – 并选中“此数据库”.

好的,很奇怪.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读