在SQL-Server中关于日期的数据类型有哪些?

正在做项目,在数据库设计时,有一个字段,需要用到日期(只要年、月、日),用了Datetime和Smalldatetime都试过,但是我只需要日期,不要带时间,因此,我试用两种数据类型时借助check和default约束以及year、month、day函数,结果有的直接失败,有的是成功了,可惜,插入数据时却提示向datetime、smalldatetime类型转换时失败,该如何解决啊,哪位高手指点一下,定当感激涕零……

有datetime和smalldatetime两种格式的日期时间数据类型,如下:
  1、datetime
  数据库内部用两个4字节的整数存储datetime数据类型的值。
  第一个4字节存储基础日期(即1900-1-1, base date)之前或之后的日期。
  日期范围为1753-1-1至9999-12-31。当日期为1900-1-1时值为0,之前的日期是负数;之后日期是正数,另外一个4字节存储以午夜后三又三分之一(10/3)毫秒数所代表的每天的时间。
  2、smalldatetime
  smalldatetime数据类型存储日期和每天的时间,但精确度低于datetime。
  SQL Server将smalldatetime的值存储为两个2字节的整数。
  第一个2字节存储1900-1-1后的天数,另外一个2字节存储午夜后的分钟数。
  日期范围从1900-1-1到2079-6-6,时间精确到分钟,29.998秒或更低的smalldatetime值向下舍入为最接近的分钟,29.999秒或更高的smalldatetime值向上舍入为最接近的分钟。
  --returns time as 12:35
  SELECT CAST('2000-05-08 12:35:29.998' AS smalldatetime)
  GO
  --returns time as 12:36
  SELECT CAST('2000-05-08 12:35:29.999' AS smalldatetime)
  GO
  注意:没有单独的日期或时间类型。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-10
插入数据之前在代码中处理好年月日,插进去,读取时,再在代码中处理好只要年月日,这样可行不
第2个回答  2013-09-10
哥告诉你吧!如果只用年月日、只能像你想的那样儿、先建一个函数: select CONVERT(varchar, getdate(), 120 ) 2004-09-12 11:06:08 在提取关键部位 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),\'-\',\'\'),\' \',\'\'),\':\',\'\') 20040912110608 最后你就代入函数就行了、 select CONVERT(varchar(12) , getdate(), 111 ) 2004/09/12本回答被网友采纳
第3个回答  2013-09-10
可以用char类型进行代替啊如1990-04-12这样的可以用char(10) 来代替

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网