我有一个数据表(由数据库使用dataadaptor返回),在出生日期结束时DateOfBirth
字段00:00:00
。我想删除那些00:00:00,所以我写了一个函数,但它没有做的工作,我不知道为什么。任何人都可以向我建议如何从00:00:00
中移除DateOfBirth
。我没有数据库或存储过程的权限。
Dim DOB As New DateTime
Dim newDob As String = ""
For Each x In dt.Rows
If x("DateOfBirth") <> String.Empty AndAlso IsDate(x("DateOfBirth")) Then
DOB = CDate(x("DateOfBirth"))
newDob = DOB.ToString("dd/MM/yyyy")
x("DateOfBirth") = newDob
End If
Next
答案 0 :(得分:5)
您无法从日期值中删除00:00:00
,只能从日期字符串中删除。您可以像ToString("dd/MM/yyyy")
一样在显示日期字符串时将其删除,但x("DateOfBirth")
是日期值(如if语句中所述),它会测量刻度(10-pow -7 of a)从1970年1月1日(sql datetime
)或1/1/0001(sql datetime2
或c#DateTime
)。只有将日期值转换为字符串时,日期值才具有任何字符串表示形式。
答案 1 :(得分:1)
DateTime
中的datarow
条目实际上是一大堆二进制数据。 00:00:00
只是它的字符串表示。你正在做的是将21/1/1978
放入日期字段,但就计算机而言,这与21/1/1978 00:00:00
的日期相同,所以你所做的事情没有效果。
当您将数据输出到字符串时,您应该做的是调整日期的显示。在那里,您可以使用.ToString("dd/MM/yyyy")
根据需要对其进行格式化。