当前位置: 代码迷 >> VB Dotnet >> 关于日期的变换
  详细解决方案

关于日期的变换

热度:77   发布时间:2016-04-25 02:15:16.0
关于日期的转换
以前不太懂,建立SQL2008数据库时把表中“有效期”列设定为char(10),而物品的有效期格式又有两种,如:“2014-9”、“2014-9-15”。事实上“2014-9”应该是表示“2014-9-30”,虽然只说明了月没有说明日,但它的意思应该是包含整个月的。

现在我要进行物品有没有过期的统计,如下:

Dim dv As DataView
If CDate("2014-9-5") > CDate(dv.Item(i)("有效期").ToString.Trim) Then
……显示出来,认为过期

这时候,“2014-9”被显示出来了,被认为过期了。

如何才能避免这种情况?
------解决方案--------------------
首先 要想到 临界值的 问题:

假设 9-30是这个月的最后一天,而你的过期日期写的是 9

这种情况 是算过期,还是不算呢?

如果不算的话,很好办,直接:
切割字符,先比较年,再比较月,日期根本不用比,因为不可能会出现9-32这种情况,难道不是?
------解决方案--------------------
引用:
首先 要想到 临界值的 问题:

假设 9-30是这个月的最后一天,而你的过期日期写的是 9

这种情况 是算过期,还是不算呢?

如果不算的话,很好办,直接:
切割字符,先比较年,再比较月,日期根本不用比,因为不可能会出现9-32这种情况,难道不是?

我觉得这种方法更简单,直接将日期的格式转换为YYYY-MM进行比较<=的就没过期,>的就过期了这样就简单多了
30应该不算过期,如果有临界值的话做个简单判断就行,Vb.Net有判断是当月第几天的函数直接用就可以了...
  相关解决方案