SQL数据类型datetime

datetime类型处理从1753年1月1日9999年12月31日的日期和时间数据,精确度为百分之三秒。

datetime的存储长度为8字节,日期和时间各用4个字节存储,第一个4字节存储自1900年1月1日之前或之后的天数(以1900年1月1日为分界点,在1900年1月1日之前的日期的天数小于0,在1900年1月1日之后的日期的天数大于0)。另外一个4字节存储以午夜(00:00:00.000)后毫秒数所代表的每天的时间。

2^32=4294967296

毫秒数=24*60*60*100=9830400天数:365*100=36500

足够储存)

 

smalldatetime类型处理从190011日~20796日的日期和时间数据,精确到分钟。29.998秒或更低的smalldatetime值向下舍入为最接近的分钟,29.999秒或更高的smalldatetime值向上舍入为最接近的分钟。

smalldatetime的存储长度为4字节,第一个2字节存储自190011日之后的天数。另外一个2字节存储午夜(00:00:00.000)后的分钟数。

 

2^16=65536

分钟数:24*60=1440 天数:179*365+31+28+31+30+31+6+其中闰年数43=65535

刚好足够

 

date:是返回datetimesmalldatetime值或日期格式字符串的表达式。

如果 date smalldatetime ,则返回 smalldatetime ,否则返回 datetime date smalldatetime Datepart Second ss,s )或 Millisecond ms )时,返回值将根据日期增减的结果调整到分钟; date datetime Datepart Millisecond ms )时,返回值将根据日期增减的结果调整为百分之三秒。

datetime类型处理从1753年1月1日9999年12月31日的日期和时间数据,精确度为百分之三秒。

datetime的存储长度为8字节,日期和时间各用4个字节存储,第一个4字节存储自1900年1月1日之前或之后的天数(以1900年1月1日为分界点,在1900年1月1日之前的日期的天数小于0,在1900年1月1日之后的日期的天数大于0)。另外一个4字节存储以午夜(00:00:00.000)后毫秒数所代表的每天的时间。

2^32=4294967296

毫秒数=24*60*60*100=9830400天数:365*100=36500

足够储存)

 

smalldatetime类型处理从190011日~20796日的日期和时间数据,精确到分钟。29.998秒或更低的smalldatetime值向下舍入为最接近的分钟,29.999秒或更高的smalldatetime值向上舍入为最接近的分钟。

smalldatetime的存储长度为4字节,第一个2字节存储自190011日之后的天数。另外一个2字节存储午夜(00:00:00.000)后的分钟数。

 

2^16=65536

分钟数:24*60=1440 天数:179*365+31+28+31+30+31+6+其中闰年数43=65535

刚好足够

 

date:是返回datetimesmalldatetime值或日期格式字符串的表达式。

如果datesmalldatetime,则返回smalldatetime,否则返回datetimedatesmalldatetimeDatepartSecondss,s)或Millisecondms)时,返回值将根据日期增减的结果调整到分钟;datedatetimeDatepartMillisecondms)时,返回值将根据日期增减的结果调整为百分之三秒。


在使用C++接受数据库返回值的实践中,date接受datetime类型时的精确度没有datetime高,所以下面的这段话没有办法实现功能:

功能:删除时间最早的行:
1.使用date类型接受数据,select min(return_time) from borrow  (使用time变量接受)

2.使用程序中向数据库导入SQL语句语句:

delete from borrow where return_time='%s'(%s->time)

这时候就无法实现删除功能,因为date类型的time变量接受的值的精确度无法达到数据库中datetime变量的精度要求

若此时使用smalldatetime就可以顺利删除。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值