SQL Server DateTime数据类型的另类解读

数据库 SQL Server
以下的文章主要向大家讲述的是SQL Server DateTime数据类型的另类解读,以下就是文章的主要内容的描述,望你会有所收获。

此文章主要向大家讲述的是另类解读SQL Server DateTime数据类型,看到这个标题,你可能会笑。其实这个问题看起,因为你以为这个东西太小儿科了,还用得着做一个标题?!我会笑,是因为我确信你看完后会改变你的想法。

首先我引入一个问题:如何与一个DateTime类型的字段值进行相等比较?

其实这个问题看起来容易,但有下面的问题存在:

1、一般来说,用户输入的日期值就是yyyy/mm/dd,不带时、分、秒;

2、数据库中存储的日期值是带时、分、秒的。

所以我必须假定:我们所谓的两个日期相等就是年、月、日相等。

两种方法:

1、有了这样的假定,你我都会有这样的想法:把两个日期的年、月、日取出来分别比较就行了,三者相等即可(也可按统一格式做成一个串再比较)。

2、上面的方法虽然可行。但你会发现几乎把日期函数用了个遍!不妨按下面的思路想一下:如果只指定日期,则时间默认为 12:00 AM(午夜)(取自:SQL Server联机帮助)。假定我们要查的日期是2004/7/10,则其实我们想要的就是这一天的00:00:00至23:59:59之间的。

提到之间,我们就会想到between...and!!只要 between 2004/7/10 and 2004/7/11 即可了。具体地说:between Cast('2004-7-10' as DateTime) and dateadd(day, 1, Cast('2004-7-10' as DateTime))。但这个方法有一个小小问题,它会把7/11 0点的东西也找到,而这其实不应算做7/10的。如果你还想精益求精的话,就只能用...>=... and ...<... 了。(一般情况下没有必要)

等于讨论完后,再想想大于(或小于)某个日期,我们自然可以还用 between ... and 的,再一次论证上面方法的通用性。

注意:有了上面的讨论,你一定明白了,and 后的日期一定要加一天,否则结束日期就不会查到了。

以上的相关内容就是对SQL Server DateTime数据类型的介绍,望你能有所收获。

解读SQL Server DateTime数据类型


上述的相关内容就是对SQL Server DateTime数据类型的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

  1. SQL Server自增字段插入值的步骤
  2. SQL Server 2005降级到2000的正确操作步骤
  3. SQL Server 2008 基于策略之管理大全
  4. SQL Server中数据该如何导入导出?
  5. SQL Server中用户名与登录名关系辨析谈

 

责任编辑:佚名 来源: 互联网
相关推荐

2010-07-12 15:36:45

SQL Server

2011-05-11 10:39:01

SQL Serverdatetime数据类优化误区

2011-04-18 10:32:18

SQL Server数据类型设计优化

2010-11-29 10:09:26

SQL Server

2010-09-13 10:10:07

SQL Server2

2010-07-22 17:57:40

2010-09-06 16:25:46

SQL函数

2010-07-20 15:54:02

SQL Server数

2010-07-22 17:47:32

SQL Server数

2010-07-26 14:21:25

SQL Server数

2010-09-13 10:21:26

sql server2

2010-10-19 15:54:38

sql server创

2010-09-25 09:45:46

sql server主

2010-09-13 09:58:17

SQL Server2

2010-07-23 14:18:47

SQL Server数

2010-06-30 11:31:55

SQL Server数

2010-07-22 17:39:44

2010-06-28 11:22:14

MS SQL Serv

2011-08-25 13:31:08

SQL Server批量修改字段存储过程

2009-04-16 17:55:55

SQL Server 空间数据.NET
点赞
收藏

51CTO技术栈公众号