时间格式,对应于数据库中的DateTime类型,对应于.NET里面的System.
DateTime类型。DateTime支持日期从1753年1月1日到9999年12月31日,时间部分的精确度是3.33毫秒,它需要8字节的存储空间。
Datetime2:
时间格式,就Sql
Server
2008
里面新增的字段类型。对应于数据库中的DateTime2格式,对应于.NET里面的System.
DateTime类型。DateTime2则支持从0001年01月01日到9999年12月31日,时间部分的精度是100纳秒,占用6到8字节的存储空间,取决于存储的精度。
datetime2数据类型,类似于之前的datetime类型,不过其精度比较高,可以精确到小数点后面7位(100ns)
Mysql中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。
【1】Date数据类型:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。支持的时间范围为“1000-00-00”到“9999-12-31”。
【2】Datetime类型:存储既有日期又有时间的数据。存储和显示的格式为 “YYYY-MM-DD HH:MM:SS”。支持的时间范围是“1000-00-00 00:00:00”到“9999-12-31 23:59:59”。
【3】Timestamp类型:也是存储既有日期又有时间的数据。存储和显示的格式跟Datetime一样。支持的时间范围是“1970-01-01 00:00:01”到“2038-01-19 03:14:07”。
扩展资料
切记不要用字符串存储日期
这种存储日期的方式的优点还是有的,就是简单直白,容易上手。但是,这是不正确的做法,主要会有下面两个问题:
1、字符串占用的空间更大。
2、字符串存储的日期比较效率比较低(逐个字符进行比对),无法用日期相关的 API 进行计算和比较。
DateTime 类型没有时区信息的
DateTime 类型是没有时区信息的(时区无关) ,DateTime 类型保存的时间都是当前会话所设置的时区对应的时间。
当你的时区更换之后,比如你的服务器更换地址或者更换客户端连接时区设置的话,就会导致你从数据库中读出的时间错误。不要小看这个问题,很多系统就是因为这个问题闹出了很多笑话。
Timestamp 和时区有关。Timestamp 类型字段的值会随着服务器时区的变化而变化,自动换算成相应的时间,说简单点就是在不同时区,查询到同一个条记录此字段的值会不一样。
1.首先,把读取出来的值转换成DateTime类型,因为字符串不能比较大小DateTime dTimeDB1 = Convert.todateTime(数据库中的值)
DateTime dTimeDB2 = Convert.todateTime(数据库中的值)
2.然后,再进行比较
使用比较方法:
if(DateTime.Compare(dTimeDB1 ,dTimeDB2) >0)
说明:dTimeDB1 >dTimeDB2即dTimeDB1 是晚于dTimeDB2的时间
当然也可以不使用比较方法,而直接比较时间大小,就像比较数值一样
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)