2

我有一个数据表(由数据库使用数据适配器返回),其中包含出生日期结束时的DateOfBirth字段。00:00:00我想删除那些 00:00:00 所以我写了一个函数,但它没有完成这项工作,我不知道为什么。任何人都可以向我建议如何00:00:00DateOfBirth. 我没有数据库或存储过程的权限。

    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
4

2 回答 2

5

您不能00:00:00从日期中删除,只能从日期字符串中删除。您可以在显示日期字符串时删除它ToString("dd/MM/yyyy"),但x("DateOfBirth")它是一个日期值(如您的 if 语句中所写),它测量 1970 年 1 月 1 日的滴答声(10 pow -7 秒)(sql datetime) 或 1/1/0001 (sqldatetime2或 c# DateTime)。日期值没有任何字符串表示,仅当您将其转换为字符串时。

于 2012-08-09T10:50:01.090 回答
1

实际上,您的DateTime条目datarow是一团二进制数据。这00:00:00只是它的字符串表示。您正在做的是21/1/1978输入日期字段,但就计算机而言,这与日期相同,21/1/1978 00:00:00因此您所做的没有任何效果。

您应该做的是在将日期输出到字符串时调整日期的显示,无论您在哪里查看它。在那里,您可以使用.ToString("dd/MM/yyyy")来根据需要对其进行格式化。

于 2012-08-09T10:50:41.853 回答