我正在使用 Now.Hour 为查询返回一个整数。这是我的SQL查询:
SELECT * FROM DATABASE.dbo.STORE_LIVE WHERE DELIVERY_HOUR=Now.Hour
然而,在午夜12点,我的查询没有返回任何行,因为Now.Hour只返回'0',但数据库中的DELIVERY_HOUR的范围是1到24.
在MSDN时间格式中,这些是唯一可用的格式:
“H”
“HH”
我应该如何定制Now.Hour从1到24返回而不诉诸0或23区间的条件语句?
由于
答案 0 :(得分:0)
我建议你创建一个返回1 - 24而不是0 - 23的扩展方法。
将此代码放入模块:
Imports System.Runtime.CompilerServices
<Extension()>
Private Function GetCustomHour(aDate As Date) As Integer
Dim hour = aDate.Hour
Select Case hour
Case 0 : Return 24
Case Else : Return hour
End Select
End Function
然后在你的代码中:
而不是Now.Hour
使用Now.GetCustomHour
但是,我强烈建议您更改数据库以存储有效时间,因为这只会导致更多问题(一天中没有这样的小时为24)