如何比较两个日期格式保存到数据库

Two*_*ent 4 .net vb.net datetime

我想比较两个日期格式,并返回"假",当两个格式是不相等的.

例如,我得到两个日期,24/10/2012(DD/MM/YYYY)和2016/11/05(YYYY/MM/DD)......在这种情况下,某些函数应返回false,因为日期格式不相等.

当要比较的第二种格式不等于SQL格式(YYYY-MM-DD)时,我想要一个返回false的函数.

Ňɏs*_*arp 7

你问的是一个(或两个)不需要回答的问题.

日期没有格式 格式是日期如何显示给人类.日期只是一个非常大的数字636094492018399433L.它没有格式.

I want a function thats returns false when the second format to compare not equal the SQL format (YYYY-MM-DD)

您真的不必担心使用.NET DB提供程序的db格式(例如OleDB,SQLite,SQL Server,MySQL).他们都知道如何将日期数据正确存储到日期列 - 这是他们的工作.如果您的列是字符串,请不要这样做.如果您希望日期与日期相同,请将其存储为日期.

数据库文档很难解释日期格式,以便您从键盘通过Shell界面输入数据,或者从text/csv文件导入数据.使用NET DB提供程序时,数据格式是实现细节.

Using dbCon As New MySQLConnection(mySQLConnStr)
    Using cmd As New MySqlCommand(SQL, dbCon)
        dbCon.Open()
        cmd.Parameters.Add("@p1", MySqlDbType.DateTime).Value = fromDate
        cmd.Parameters.Add("@p2", MySqlDbType.DateTime).Value = toDate

        cmd.ExecuteQuery
    End Using
End Using
Run Code Online (Sandbox Code Playgroud)
  • 指定DbType为DateTime
  • 传递日期数据.

要仅存储日期,大多数数据库都有一个单独的DbType.Date,但通常只需要传递该.Date部分:

cmd.Parameters.Add("@p2", MySqlDbType.Date).Value = toDate.Date
Run Code Online (Sandbox Code Playgroud)

NET DB提供程序都知道所有知识,比如如何获取NET日期并将其保存到它们构建的数据库中,并以可以解析/读回的格式执行此操作.