【发布时间】:2019-10-02 09:23:32
【问题描述】:
我有一个包含出生日期列的数据表。
我想将日期分开并将年份部分更改为 today.year,即当前年份。
下面是我的代码:
Dim birthda As New SqlDataAdapter(birthcmd)
Dim birthdt As New DataTable
birthda.Fill(birthdt)
For Each rw As DataRow In birthdt.Rows
Dim dob As String = rw.Item(3)
Dim mdat As Date = FormatDateTime(dob, DateFormat.ShortDate)
Dim bday As Date = (Date.Today.Year & mdat.Month & mdat.Day)
Dim yers As Integer = DateDiff(DateInterval.Year, mdat.Date, Today.Date)
Dim moths As Integer = DateDiff(DateInterval.Month, mdat.Date, Today.Date)
Dim dys As Integer = DateDiff(DateInterval.Day, mdat.Date, Today.Date)
但我收到此错误:
从字符串“2019715”到类型“日期”的转换无效。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.InvalidCastException:从字符串“2019715”到类型“Date”的转换无效。
来源错误:
第 149 行:
第 150 行:Dim bday As Date = (Date.Today.Year & mdat.Month & mdat.Day)
【问题讨论】:
-
在此处了解可解析格式:docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/…。另外,请考虑使用 .NET DateTime 而不是 Date。
-
1) 数据库中列的类型是什么? (是 varchar、日期时间还是其他?) 2) 如果出生日期是 2 月 29 日,但您计算的年份不是闰年,您希望发生什么?
-
该列是日期时间,并且希望检查那些在特定一周内即将过生日的人,所以如果值在 1 到 7 之间,那么我的代码中的 dys2 就是它
标签: vb.net