在进行机房时遇到了日期和时间向文本类型的转换错误。而且频繁报错,特地总结了这些问题的特点。
数据库与VB.NET的对照
time(n):显示时间,n为精度控制。有兴趣的可以去试一试,挺爽的。
timespan是与数据库里的time数据类型对应,准确的说它不是一个显示时间的数据类型,它是来表示时间间隔的,比如:一个时间减去一个时间得到的值,就是timespan类型的数据。而timespan减去0就是要显示的时间,所以数据库里的time数据类型对应VB.net里的timespan数据类型
另一方面做机房时还遇到了规范字符串显示的问题:比如要显示一个日期,而得到的数值为:2016-3-4 00:00:00
这个时候就要用到我们的format函数了。通过对format函数的运用,发现了一个很有趣的东西。看下面的代码
Dim b As DateTime = "2016-3-4 20:00:00" //规定好字符串的格式,注意b是datetime类型
Dim c As String = "23:34:32" //规定好字符串的格式,注意c是string类型
Label4.Text = Format(c, "long time") //long time 格式,指定显示时,分秒
Label5.Text = Format(c, "H:mm:ss") //H,24小时制显示,mm分钟显示,ss秒显示
Label6.Text = Format(b, "yyyy-MM-dd") //yyyy,年数显示,MM月份显示,dd天数显示
Label7.Text = Format(b, "short date") //short date 短日期显示。例如:2016/3/3
根据上面的显示结果。我总结了:format函数在使用yyyy-MM-dd,H:mm:ss格式来显示日期和时间字符串时,前面的字符串参数必须为datetime类型的数据。而使用short date,和short time格式时,就不用考虑这么多了。所以,在日期和时间来显示时,不妨使用short date,long date,short time,long time格式。个人的实验结果,有什么错误大家多多指点。
总结:在设计数据库时,选用哪个数据类型,需要仔细考虑啊,一个合适的数据类型将使程序简单。