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

正在做项目,在数据库设计时,有一个字段,需要用到日期(只要年、月、日),用了Datetime和Smalldatetime都试过,但是我只需要日期,不要带时间,因此,我试用... 正在做项目,在数据库设计时,有一个字段,需要用到日期(只要年、月、日),用了Datetime和Smalldatetime都试过,但是我只需要日期,不要带时间,因此,我试用两种数据类型时借助check和default约束以及year、month、day函数,结果有的直接失败,有的是成功了,可惜,插入数据时却提示向datetime、smalldatetime类型转换时失败,该如何解决啊,哪位高手指点一下,定当感激涕零…… 展开
 我来答
糖糖寳寳
2015-09-14 · TA获得超过6.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:92%
帮助的人:3959万
展开全部
有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
  注意:没有单独的日期或时间类型。
匿名用户
2013-09-10
展开全部
插入数据之前在代码中处理好年月日,插进去,读取时,再在代码中处理好只要年月日,这样可行不
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-10
展开全部
可以用char类型进行代替啊如1990-04-12这样的可以用char(10) 来代替
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式