sqlserver 中时间为空的处理小结

现将几种主要情况进行小结:
一、如何输入NULL值
如果不输入null值,当时间为空时,会默认写入"1900-01-01",在业务处理时很麻烦。
ctrl+0即可输入NULL值。
二、如何在sql语句中判断为NULL的时间字段
假设表为:TestTable
SN    DateTime1    DateTime2
1    2011-10-24   2011-10-25
2    NULL       2011-10-26
3    2011-10-25   NULL
用case进行查询,若写成:
select (case DateTime1 when NULL then 'a' else 'b' end) from TestTable
则查询结果为:

b

这显然不是想要的结果;需要写成:
select (case DateTime1 when DateTime1 then 'b' else 'a' end) from TestTable
其查询结果才为:

a

这才是想要的结果。

(0)

相关推荐

  • sqlserver 中时间为空的处理小结

    现将几种主要情况进行小结: 一.如何输入NULL值 如果不输入null值,当时间为空时,会默认写入"1900-01-01",在业务处理时很麻烦. ctrl+0即可输入NULL值. 二.如何在sql语句中判断为NULL的时间字段 假设表为:TestTable SN DateTime1 DateTime2 1 2011-10-24 2011-10-25 2 NULL 2011-10-26 3 2011-10-25 NULL 用case进行查询,若写成: select (case DateT

  • sqlserver中的自定义函数的方法小结

    "自定义函数"是我们平常的说法,而"用户定义的函数"是 SQL Server 中书面的说法. SQL Server 2000 允许用户创建自定义函数,自定义函数可以有返回值. 自定义函数分为:标量值函数或表值函数 如果 RETURNS 子句指定一种标量数据类型,则函数为标量值函数.可以使用多条 Transact-SQL 语句定义标量值函数. 如果 RETURNS 子句指定 TABLE,则函数为表值函数. 表值函数又可分为:内嵌表值函数(行内函数)或多语句函数 如果

  • 详解C#批量插入数据到Sqlserver中的四种方式

    本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生成一个GUID算法所花的时间肯定比你从数据表中重新查询上一条记录的ID的值然后再进行加1运算要少.而如果存在索引的情况下,每次插入记录都会进行索引重建,这是非常耗性能的.如果表中无可避免的存在索引,我们可以通过先删除索引,然后批量插入,最后再重建索引的方式来提高效率. create database C

  • php中各种定义变量的方法小结

    1.定义常量define("CONSTANT", "Hello world."); 常量只能包含标量数据(boolean,integer,float 和 string). 调用常量时,只需要简单的用名称取得常量的值,而不能加"$"符号,如:echo CONSTANT: 注: 常量和(全局)变量在不同的名字空间中.这意味着例如 TRUE 和 $TRUE 是不同的. 2.普通变量$a = "hello"; 3.可变变量(使用两个美

  • php操作sqlserver关于时间日期读取的小小见解

    上周五,要做一个php 同时对mysql数据库和sqlserver数据库的连接东东 以前一直在用mysql对sqlserver不是很熟悉,于是摸着石头过河.没有别的至少mysql和sqlserver还算是亲戚 在做条件查询的时候.出现了问题 首先是查询出来的时间是这种格式的 11 30 2009 10:20:20AM 我打开sqlserver数据库查看表中的数据 却是2009-11-30 10:20:20.233 后来查了查好像sqlserver有个格式问题,但是输出的时候要的是2009-11-

  • SQLServer中使用扩展事件获取Session级别的等待信息及SQLServer 2016中Session级别等待信息的增强

    什么是等待 简单说明一下什么是等待: 当应用程序对SQL Server发起一个Session请求的时候,这个Session请求在数据库中执行的过程中会申请其所需要的资源, 比如可能会申请内存资源,表上的锁资源,物理IO资源,网络资源等等, 如果当前Session运行过程中需要申请的某些资源无法立即得到满足,就会产生等待. SQL Server会以不用的方式来展现这个等待信息,比活动Session的等待信息,实例级的等待信息等等. SQL Server中,等待事件是作为DBA进行TroubleSh

  • SqlServer中如何解决session阻塞问题

    简介 对于数据库运维人员来说创建session或者查询时产生问题是常规情况,下面介绍一种很有效且不借助第三方工具的方式来解决类似问题. 最近开始接触运维工作,所以自己总结一些方案便于不懂数据库的同事解决一些不太紧要的数据库问题.类似方法很多理论也很多,我就不做深究,就是简单写一个方案,便于菜鸟使用的. 阻塞理解 在Sql Server 中当一个数据库会话中的事务正锁定一个或多个其他会话事务想要读取或修改的资源时,会产生阻塞(Blocking).通常短时间的阻塞没有问题,且是较忙的应用程序所需要的

  • asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法

    本文实例讲述了asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法.分享给大家供大家参考,具体如下: public DataSet GetDataSet(string filePath) { string Connstr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + filePath + "';Extended Properties='Excel 8.0;HD

  • C#批量插入数据到Sqlserver中的三种方式

    本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,表中没有创建任何索引.GUID必然是比自增长要快的,因为你生成一个GUID算法所花的时间肯定比你从数据表中重新查询上一条记录的ID的值然后再进行加1运算要少.而如果存在索引的情况下,每次插入记录都会进行索引重建,这是非常耗性能的.如果表中无可避免的存在索引,我们可以通过先删除索引,然后批量插入,最后再重建索引的方式来提高效率. create database C

  • Mysql 常用的时间日期及转换函数小结

    本文主要是总结一些常用的在实际运用中常用的一些mysql时间日期以及转换的函数 1.now()  :返回当前日期和时间 select now(); //2018-04-21 09:19:21 2.curdate()   :返回当前日期 select curdate(); //2018-04-21 3. dayofweek(data) : 返回日期 data 是星期几 (1 = 星期日,2 =星期一...7=星期六,ODBC标准) select dayofweek('2018-02-13'); /

随机推荐