sql数据库中的时间类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

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

时区偏移量:有

参考技术A 满意答案。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();
参考技术B 使用nvarchar对于前期的实现比较容易,但性能及后期使用及后期需求开发比较困难 如按时间排序,数据库类型校验,根据时间段查询,根据时间的分组统计等等方面造成的影响比较大 参考技术C 你可以用时间戳,int的就可以了 参考技术D 用datetime吧 这样方便查询

SQL Server中的数据类型

参考 SQL Server 2012编程入门经典(第4版)

SQL Server 自带的数据类型

 

 

 

 

 

整型:

 

 

 

货币

 

近似小数

  

 

日期/时间

 

 

 特殊数字

 

 字符

 

Unicode

 

二进制

 

 其他

 

以上是关于sql数据库中的时间类型的主要内容,如果未能解决你的问题,请参考以下文章

检查列数据类型并仅对 Spark SQL 中的整数和小数执行 SQL

SQL 中的 Unicode 数据类型

SQL数据类型转换

sql SQL中的数据类型

将 varchar 数据类型转换为 datetime 数据类型导致 SQL 查询中的值超出范围

MySQL 基础 -- MySQL 数据类型说明(数值类型字符串类型日期时间类型)SQL通用语法和SQL分类