【发布时间】:2011-08-09 08:30:08
【问题描述】:
数据库有一个“结束日期”字段,1753/1/1 应该是什么都不代表的值,因为我们不能在 SQL Server 中将 null 分配给 datetime..
在报告应用程序中使用的选择查询,获取包括那些 1753 日期值的数据。不错
问题
1753 日期导致报表计算出错。报告中有很多计算,更改代码忽略1753会很头疼,所以我在想
有没有办法告诉SQL Server:
SELECT *
FROM TABLE BUT IN END_DATE
WHERE VALUE='1753/1/1 01:00:00.000' REPLACE WITH PARAMETER1
CRUDE EDIT(目前无权访问调试器)
我不记得了,但我收到了类似
的错误什么都不应该映射到某物上
当我尝试插入具有空日期的记录时!仅当在 C# 中使用 VB.NET 时才会发生这种情况,它工作正常。你知道为什么吗??
【问题讨论】:
-
顺便说一句,为什么不能将 null 分配给 SQL Server 中的日期时间?
-
我不记得了,但是当我插入带有空日期的记录时,我得到并错误地说什么都不应该映射到某些东西上!仅当在 csharp 中使用 VB.NET 时才会发生这种情况,它工作正常。你知道为什么吗??
-
发布您的代码在保存 null 时会引发错误,可能是因为 DateTIme 是值类型,所以您不能分配 NULL,所以您必须将 SqlDateTime() 对象保存到 dateTime 列中跨度>
-
就是这样,我会模拟问题并尽快发布
-
您是否也在过滤“开始日期”?
标签: c# sql vb.net tsql sql-server-2008