sql server datetime类型字段使用isnull返回1900-01-01 00:00:00.000的问题

若字段定义的类型为datetime,插入为‘‘(空),那么会默认值为1900-01-01 00:00:00.000

解决方法查询的时候过滤下cast(nullif(‘‘,‘‘) as datetime)

select cast(‘‘ as datetime)
    , cast(nullif(‘‘,‘‘) as datetime)
    , isnull(cast(nullif(‘‘,‘‘) as datetime),getdate())

原文地址:https://www.cnblogs.com/hofmann/p/9268980.html

时间: 2024-10-01 02:48:01

sql server datetime类型字段使用isnull返回1900-01-01 00:00:00.000的问题的相关文章

SQL Server Datetime类型为NULL不能用ISNULL(datetime,' ')来判断,会导致1900-01-01

select top 10 --(case when zb.Order_CreatedOn is null then '' when zb.Order_CreatedOn<>'1900-01-01' then zb.Order_CreatedOn end) as Order_CreatedOn,*--datetime类型不能转成'',如果转成'',返回给程序就是1900-01-01,''这种空字符串默认就会返回1900-01-01,所以不用在SQL里面转换,在程序里面用DBNUll.value

Sql Server xml 类型字段的增删改查

1.定义表结构 在MSSM中新建数据库表CommunicateItem,定义其中一个字段ItemContentXml 为xml类型 2.编辑表数据,新增一行,发现xml类型不能通过设计器录入数据. 需要写sql更新或插入. DECLARE @xml XML SET @xml=' <MyHobby> <MyCode>1</MyCode> <MyName>爬山</MyName> </MyHobby> <MyHobby> <

【转】SQL SERVER DateTime类型的精度

先看下边的SQL 语句 CREATE TABLE #DateTest( Id INT, SampleDate DATETIME ) INSERT INTO #DateTest VALUES(1,'1 jan 2010 10:30') INSERT INTO #DateTest VALUES(2,'2 jan 2010 23:59') INSERT INTO #DateTest VALUES(3,'3 jan 2010 12:34') INSERT INTO #DateTest VALUES(4,

使用 SQL Server 的 uniqueidentifier 字段类型

原文:使用 SQL Server 的 uniqueidentifier 字段类型 SQL Server 自 2008 版起引入了?uniqueidentifier?字段,它存储的是一个 UUID, 或者叫 GUID,内部存储为 16 个字节.SQL Server 可用两个函数来生成?uniqueidentifier, 分别是?NEWID()?和?NEWSEQUENTIALID(), 后者只能用作字段的默认值.Java 也有一个 UUID 工具类?java.uti.UUID,?UUID.rando

【转】一道SQL SERVER DateTime的试题

学习过上一篇SQL SERVER DateTime精度的文章后.再来做一道题. IF ('2011-07-31 00:00:00.000' BETWEEN '2011-07-01' and '2011-07-31 ')PRINT 'Yes'ELSEPRINT 'No' 结果是什么,如果你认为是Yes,那么你就上当了,哈哈.因为这不是两个日期类型在比较,这就是两个字符串在比较. 所以结果当然是NO. 如果要进行比日期比较,应该进行类型转换,如下比较: IF (CAST('2011-07-31 00

SQL Server对比两字段的相似度(函数算法)

原文:SQL Server对比两字段的相似度(函数算法) 相似度函数 概述    比较两个字段的相似度    最近有人问到关于两个字段求相似度的函数,所以就写了一篇关于相似度的函数,分别是“简单的模糊匹配”,“顺序匹配”,“一对一位置匹配”.在平时的这种函数可能会需要用到,可能业务需求不一样,这里只给出参照,实际情况可以相对修改. 本文所有的两个字段比较都是除以比较字段本身,例如A与B比较,找出的长度除以A的长度,因为考虑如果A的长度大于B的长度,相似度会超100%,例如‘abbc’,'ab'.

C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法

原文:C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法 本人新手,在.Net中写WebAPI的时候,当接口返回的json数据含有日期时间类型的字段时,总是在日期和时间中夹着一个字母T:微软这么设置可能有其内在的初衷,但是对于我来说,这样的格式不是很方便,前端同学展示出来的时候也总是要记得处理一下显示格式.曾经问过部门内一位老鸟,老鸟的反应告诉我这在微软的框架下做json转换是不可避免的:当初一度放弃了这个问题.后来突然冷静分析了一下,微软不可能做

Sql Server 2005 去掉字段中的空格

SELECT replace(ltrim(rtrim(Realname)),' ','') AS Realname FROM UserInfo WHERE replace(ltrim(rtrim(Realname)),' ','') ='张飞' Sql Server 2005 去掉字段中的空格,布布扣,bubuko.com

SQL SERVER中某个字段属性为varchar,我想把这个字段改成int型

SQL SERVER中某个字段属性为varchar,我想把这个字段改成int型? 这个就有点恼了,作为新手面对这些问题真有点难,这个也是我在百度上查到的,作为基础的整理吧,以后遇到方便查看. 用SQL语句:alter table [aa] alter column bb int eg: 这个是我的例子. 执行成功可以刷新一下数据库(如还是不可以,那就断开现有连接,再次连接就好.)