vb.net 常见时间类型问题
来源:互联网 发布:休闲网游 知乎 编辑:程序博客网 时间:2024/04/27 20:47
1.常见错误:
(1)错误类型一:SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/999911:59:59 PM之间。
A 原因:
我们在取DateTime.MinValue的值,并插入到数据库的时候,DateTime.MinValue值范围和数据库DateTime类型数据范围不一致造成的。数据库中,DateTime类型字段,最小值1/1/175312:00:00,而.NET Framework中,DateTime类型,最小值为1/1/00010:00:00,显然,超出了Sql的值的最小范围,导致数据溢出的错误。
B 解决方案:转换时间类型格式。如:
Dim currentDate As Date = Now() enWork.LogingDate =Convert.ToDateTime(Format(currentDate, "yyyy/MM/dd")) enWork.LoginTime =Convert.ToDateTime(Format(currentDate, "HH:mm:ss"))
(2)错误类型二:插入数据库中的时间都是00:00:00
A 原因:
使用到存储过程,存储过程中时间类型是varchar,而vb.net实体类中的时间类型是Datetime,类型不匹配,未能插入成功。
B 解决方案:将存储过程中的时间类型改为time(7)
(3)错误类型三:从类型“TimeSpan”到类型“Date”的转换无效。
A 原因:
从数据库中获取的时间是timeSpan类型的,需要转换成字符串类型的方可赋值给实体
B 解决方案:
enOnLine.OnTime =Convert.ToString(dtQuery.Rows(0).Item("onTime"))
2.常见方法
(1)方法一:计算时间差--使用DateDiff函数:返回一个Long值,用于指定两个Date值之间的时间间隔数
例如:
Dim Time1 As Date Dim Time2 As Date Dim Diff As String Diff = DateDiff(DateInterval.Minute,Time1, Time2)
其中:DateInterval.Minute:设置时间间隔格式为分钟。(用户可根据自己具体要求设定)
(2)方法二:时间取整--使用Format函数:返回已按照格式String表达式中包含的指令进行了格式化了的字符串
Dim Int as String Int=Format(Diff, "0.0")
其中:这里用到的不是四舍五入,而是通过对字符串进行按照既定要求格式化得到的。
(3)方法三:取出时间中的小时值
Dim Time asDateDim Hour asIntegerHour=System.DateTime.Parse(CStr( Time))
方法还有很多,需要我们在项目中不断的总结经验,慢慢积累,越来越好!
- vb.net 常见时间类型问题
- VB.net 类型转换问题
- VB.NET中时间转换问题
- vb.net 教程 1-8 日期时间类型1
- vb.net 教程 1-8 日期时间类型2
- vb.net 常见属性
- asp.net和vb.net中类型转换问题
- VB.net 类型 表达式
- vb.net 枚举类型
- 值类型装箱引发的效率问题(vb.net)
- VB.net SQL BIT类型参数化查询问题
- vb.net中对于ORACLE的时间查询问题
- [VB.NET]VB.net 读写ini的问题,希望好心人贡献下时间,帮忙解决下~~
- C#/VB.net/VB 获取系统时间
- VB.net 类型转换函数
- vb.net类型转换函数
- vb.net类型转换函数
- VB.Net的类型字符
- 复杂事件处理——Esper入门(示例程序)
- Sentence Created by Ubuntu
- hdu 4468 spy kmp+dp
- C# listview columnheader 右键事件
- eclipse项目名称更改,修改tomcat部署名称还是原来的项目名称的方法
- vb.net 常见时间类型问题
- 顺序表(学习笔记)
- 语言学基础 01
- Linux
- MySQL游标
- java7新特性--------final重抛
- PHP服务器端加密,javascript客户端解密
- 数学与信息论 基础
- 欧行漫记:参观华为欧洲研究所,感受华为海外研发人员的苦乐人生