sql数据库中的时间类型

各位大哥大姐请教一下sql数据库中的时间类型用nvarchar好还是datetime好啊?用datetime是不是有点麻烦啊?

日期时间类型:


time:

格式:hh:mm:ss[.nnnnnnn]

范围:00:00:00.0000000 到23:59:59.9999999

精确度:100 纳秒

存储大小(以字节为单位):3-5

用户定义的秒的小数精度:有

时区偏移量:无


date:

格式:YYYY-MM-DD

范围:0001-01-01 到 9999-12-31

精确度:1天

存储大小(以字节为单位):3

用户定义的秒的小数精度:无

时区偏移量:无


smalldatetime:

格式:YYYY-MM-DD hh:mm:ss

范围:1900-01-01 到 2079-06-06

精确度:1分钟

存储大小(以字节为单位):4

用户定义的秒的小数精度:无

时区偏移量:无


datetime:

格式:YYYY-MM-DD hh:mm:ss[.nnn]

范围:1753-01-01 到 9999-12-31

精确度:0.00333秒

存储大小(以字节为单位):8

用户定义的秒的小数精度:无

时区偏移量:无


datetime2:

格式:YYYY-MM-DD hh:mm:ss[.nnnnnnn]

范围:0001-01-01 00:00:00.0000000 到9999-12-31 23:59:59.9999999

精确度:100钠秒

存储大小(以字节为单位):6 到 8

用户定义的秒的小数精度:有

时区偏移量:无


datetimeoffset:

格式:YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm

范围:0001-01-01 00:00:00.0000000 到9999-12-31 23:59:59.9999999(以UTC 时间表示)

精确度:100钠秒

存储大小(以字节为单位):8 到10

用户定义的秒的小数精度:有

时区偏移量:有

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-21
满意答案。9级2010-11-29使用nvarchar对于前期的实现比较容易,但性能及后期使用及后期需求开发比较困难
如按时间排序,数据库类型校验,根据时间段查询,根据时间的分组统计等等方面造成的影响比较大
追问:
如果用datetime
我的MyEclipse用Hibernate转换时是timestamp类型的
在用模糊查询查时间时有点纠结啊
老是报不能转换的错误
回答:
用hibernate啊
那你在配置文件注入类型不用时间戳
改成这个试试java.util.Date
补充:
hibernate项目好几年没做过了
原来在数据库时间建模和操纵时习惯用java.sql.Timestamp与数据库中DateTime对应,但业务流通层,模型里还是用java.util.Date
因为这些时间直接的转换都是一样的方便,而且这样做逻辑理解上比较直观
记忆中是没有出现过错误,Timestamp在现在使用数据源时经常使用
追问:
知道用date类型的哇
但是hibernate自动生成的就是timestamp类型
不改配置文件
就用timestamp怎么做啊?总不能每次生成就改一次配置文件吧.....
追问:
还有我做的是模糊查询
在form里面时间又是string类型的
转换有点麻烦
回答:
你在createSQLQuery方法后面在使用
addScalar方法传入你datetime的实体对应名和hibernate类型试一下吧
补充:
这个的确比较麻烦,你可以写个公共转换方法进行转换
就是字符串根据你的时间格式进行取出时间long
然后转换就可以了
大概这样子
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat();
第2个回答  推荐于2017-04-23
使用nvarchar对于前期的实现比较容易,但性能及后期使用及后期需求开发比较困难 如按时间排序,数据库类型校验,根据时间段查询,根据时间的分组统计等等方面造成的影响比较大
第3个回答  2013-08-31
你可以用时间戳,int的就可以了
第4个回答  2013-08-31
用datetime吧 这样方便查询

相关了解……

你可能感兴趣的内容

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