0

我有一个数据库,其中有一列名为 START_TS 类型(日期时间,非空)。我在 java 中编写了一个程序,我想在该列中插入一个空白值,但它以
'1900-01-01 00:00:00.000' 作为值。

statement.executeUpdate("insert into tableName(START_TS) values(CAST(START_TS as varchar(100)))");

请建议我可以在该列中插入空白值的铸造机制。

谢谢

4

1 回答 1

1

如果您使用语法似乎指向的 MYSQL;您可以执行以下操作:

ALLOW_INVALID_DATES

不要对日期进行全面检查。只检查月份在 1 到 12 的范围内,日期在 1 到 31 的范围内。这对于您在三个不同字段中获取年、月和日并想要存储的 Web 应用程序非常方便正是用户插入的内容(没有日期验证)。此模式适用于 DATE 和 DATETIME 列。它不应用始终需要有效日期的 TIMESTAMP 列。

此模式在 MySQL 5.0.2 中实现。在 5.0.2 之前,这是默认的 MySQL 日期处理模式。从 5.0.2 开始,服务器要求月份和日期值是合法的,而不仅仅是分别在 1 到 12 和 1 到 31 的范围内。禁用严格模式后,“2004-04-31”等无效日期将转换为“0000-00-00”并生成警告。启用严格模式后,无效日期会产生错误。要允许此类日期,请启用 ALLOW_INVALID_DATES。

然而,就像每个人在评论中所说的那样,不可能在数据类型为 DATETIME 的字段中粘贴“”。

于 2012-09-05T05:29:04.153 回答