如何将 DB2 时间戳转换为 vb.net 日期?
How to cast DB2 Timestamp to vb.net date?
当我使用 DB2 SQL 填充我的 vb.net gridview 时,它显示 DB2 时间戳为:
2020-08-25-14.59.11.000000
^ 将其转换为 vb.net 日期的最简洁方法是什么? FWIW,这有效:
Dim mydate As Date = CDate("2020-08-25 14:59:11.000000")
但是,14:59:11
中的冒号不存在,我正在使用的字符串有 14.59.11
非常感谢任何帮助。
编辑:
按照要求,
screenshot of what data looks like when queried in AS400
编辑2:
Dim strSelect As String = "" &
"SELECT SUBMITTIME " &
"FROM MYTABLE " &
"WHERE EFYEAR=" & Now.Year & " AND EFMONTH=" & Now.Month
Dim dt As DataTable = SQL.Get_DataTable(strSelect)
grv.DataSource = dt
grv.DataBind()
Get_DataTable 只是使用 OleDbConnection、OleDbCommand、OleDbDataAdapter 等来填充数据表。
你不能将某物转换为它不是的类型。转换的全部要点是您不更改对象,而是更改访问对象的方式。如果您要更改对象,那么它是一次转换,而不是强制转换。
如果您想转换某些内容,那么第一步是了解您要转换的内容。如果您要从已知格式的 String
转换为 DateTime
,那么您将使用 Date.ParseExact
.
如果数据在 DataTable
中,添加具有适当数据类型的新列,在循环中进行转换,然后,如果合适,删除原始列。
myDataTable.Columns.Add("DataColumn", GetType(Date))
For Each row As DataRow In myDataTable.Rows
row("DateColumn") = Date.ParseExact(CStr(row("TextColumn")), "yyyy-MM-dd-HH.mm.ss.ffffff", Nothing)
Next
myDataTable.Columns.Remove(myDataTable.Columns("TextColumn"))
当我使用 DB2 SQL 填充我的 vb.net gridview 时,它显示 DB2 时间戳为:
2020-08-25-14.59.11.000000
^ 将其转换为 vb.net 日期的最简洁方法是什么? FWIW,这有效:
Dim mydate As Date = CDate("2020-08-25 14:59:11.000000")
但是,14:59:11
中的冒号不存在,我正在使用的字符串有 14.59.11
非常感谢任何帮助。
编辑: 按照要求, screenshot of what data looks like when queried in AS400
编辑2:
Dim strSelect As String = "" &
"SELECT SUBMITTIME " &
"FROM MYTABLE " &
"WHERE EFYEAR=" & Now.Year & " AND EFMONTH=" & Now.Month
Dim dt As DataTable = SQL.Get_DataTable(strSelect)
grv.DataSource = dt
grv.DataBind()
Get_DataTable 只是使用 OleDbConnection、OleDbCommand、OleDbDataAdapter 等来填充数据表。
你不能将某物转换为它不是的类型。转换的全部要点是您不更改对象,而是更改访问对象的方式。如果您要更改对象,那么它是一次转换,而不是强制转换。
如果您想转换某些内容,那么第一步是了解您要转换的内容。如果您要从已知格式的 String
转换为 DateTime
,那么您将使用 Date.ParseExact
.
如果数据在 DataTable
中,添加具有适当数据类型的新列,在循环中进行转换,然后,如果合适,删除原始列。
myDataTable.Columns.Add("DataColumn", GetType(Date))
For Each row As DataRow In myDataTable.Rows
row("DateColumn") = Date.ParseExact(CStr(row("TextColumn")), "yyyy-MM-dd-HH.mm.ss.ffffff", Nothing)
Next
myDataTable.Columns.Remove(myDataTable.Columns("TextColumn"))