【问题标题】:Why date field is stored with different value then null为什么日期字段以不同的值存储然后为空
【发布时间】:2014-12-17 17:21:45
【问题描述】:

我在我的程序中实现了一些程序,它们为我提供了您在下面看到的查询行(恢复的数据)。 mysql表中的日期字段设置为默认空,所有行都插入好,除了日期字段

INSERT INTO `stockdata` VALUES(4,6,'',0,1,'2014-01-01','STOCK2013',8.13,0,0,2990,0,0,'STOCK REEL 2013','',1,'2014-02-18 01:10:04',0,'')

这是我进入数据库的方式,日期字段中有 0000/00/00 00:00:00(最后一个字段'')

4, 6, '', 0, 1, '2014-01-01', 'STOCK2013', 8.13, 0, 0, 2990, 0, 0, 'STOCK REEL 2013', '', 1, '2014-02-18 01:10:04', 0, '0000-00-00 00:00:00' // taken by Mysqlquery Browser 1.1.20 however when I look with phpmyadmin or within my program there is always 0000/00/00 00:00:00

查询得到的空值被定义为公共类

 public DateTime? MyNullableDate = null;

但是当我使用带有字段名称的查询并将日期字段留空时,我在表中看到空值。

这是将空值传递给日期字段的唯一方法吗?我将 XAMPP 用于本地主机,将 godaddy 服务器用于共享数据。

这是我什至无法获得空日期字段的 sqlfiddle。

Sqlfiddle

【问题讨论】:

    标签: c# mysql


    【解决方案1】:

    NULL 永远不等于任何东西,甚至不等于它自己。

    所以要获取空值,请使用IS NULL

    SELECT * FROM stockdata WHERE up_date is null
    

    Fiddle

    【讨论】:

    • 我的问题的主要部分如何仍然存在,因为当我使用字段名称编写查询并留空 up_date 时,它​​在数据库中写得很好,但如果我放任何东西(如上所述)它是转换为 0000-00-00 00:00:00
    • @IsmailGunes 我不清楚你的意思if i put anything。插入时您是否正在寻找该列的默认值?
    【解决方案2】:

    您似乎将数据添加为'',这意味着该值是“空”而不是空值,您是否已经尝试插入空值而不是''?

    INSERT INTO `stockdata` VALUES(4,6,'',0,1,'2014-01-01','STOCK2013',8.13,0,0,2990,0,0,'STOCK REEL 2013','',1,'2014-02-18 01:10:04',0,NULL)
    

    .

    但我认为最好保留默认值:

    INSERT INTO `stockdata` VALUES(4,6,'',0,1,'2014-01-01','STOCK2013',8.13,0,0,2990,0,0,'STOCK REEL 2013','',1,'2014-02-18 01:10:04',0,DEFAULT)
    

    【讨论】:

    • 我先尝试了那些,甚至是公共日期时间? MyNullableDate = null;当我在默认情况下将日期字段设置为 null 的服务器上加载查询时,它会在那里传递 0000-00-00 00:00:00 但是当我编写整个查询时,它可以正常工作。插入stockdata (id,matid,nom,prodid,matcuisine,st_date,factureno,montant,payetype,tvaval,quantite,status,deadline,info,lot,cr_user,cr_date,up_user) 值(3,5,'' ,0,1,'2014-01-01','STOCK2013',4.46,0,0,3690,0,0,'STOCK REEL 2013','',1,'2014-02-18 01:08: 30',0) 这里我没有添加 up_date 字段的名称,并且在值中留空。这行得通!
    猜你喜欢
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 2019-11-24
    • 1970-01-01
    • 2013-04-10
    相关资源
    最近更新 更多