我想比較兩個日期格式,並返回「假」,當兩個格式是不等於。如何比較兩個日期格式保存到數據庫
例如,我得到兩個日期,2012年10月24日(DD/MM/YYYY)和2016/11/05(YYYY/MM/DD)...在這種情況下,某些函數應該返回false,因爲日期格式不等於。
我想要一個函數,當比較的第二個格式不等於SQL格式(YYYY-MM-DD)時返回false。
我想比較兩個日期格式,並返回「假」,當兩個格式是不等於。如何比較兩個日期格式保存到數據庫
例如,我得到兩個日期,2012年10月24日(DD/MM/YYYY)和2016/11/05(YYYY/MM/DD)...在這種情況下,某些函數應該返回false,因爲日期格式不等於。
我想要一個函數,當比較的第二個格式不等於SQL格式(YYYY-MM-DD)時返回false。
你在問一個不需要回答的問題(或兩個)。
日期沒有格式格式是日期如何顯示給人類。日期只是一個非常大的數字,如636094492018399433L
。它沒有格式。
I want a function thats returns false when the second format to compare not equal the SQL format (YYYY-MM-DD)
你真的不必擔心使用NET DB提供(例如OLEDB,SQLite的,SQL服務器,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
DbType
爲DateTime
只存儲日期,大多數數據塊有一個單獨的DbType.Date
,但往往你只需要通過.Date
部分:
cmd.Parameters.Add("@p2", MySqlDbType.Date).Value = toDate.Date
的NET DB提供程序都知道的事情,怎麼樣採取NET Date並將其保存到爲其構建的數據庫中,並以可解析/讀回的格式執行此操作。
嘗試像
Dim matcher As Boolean = myString Like「??/??/????」
28/11/1997; matcher = True
但11/28/1997; matcher = True
(也是如此)
它適用於一些模式,但不是一切也許嘗試拆分日起以上的變量:)
或'#'作爲數字'Like「##/[01]#/ ####」' – Slai
的問題是令人困惑,因爲它要求兩個不同的問題。這是第二個問題的答案,它要求函數測試一個日期字符串是否爲格式「yyyy-MM-dd」。它使用DateTime.ParseExact
方法來測試字符串是否爲所需的格式。
Function IsCorrectDateFormat(testDate As String) As Boolean
Dim myDate As DateTime
Return DateTime.TryParseExact(testDate, "yyyy-MM-dd",
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None, myDate)
End Function
日期沒有固有的格式,所以你的前提是錯誤的。如果您確實有日期類型(不包含日期數據的字符串),只需將它們保存到數據庫中即可。如果它們是字符串,則將它們解析爲DateTime並將其發送到DB(假定DB使用Date列)。 – Plutonix
你是要求兩個函數還是需要編輯? –
這是可怕的。這聽起來像是在檢查包含在SQL命令中的日期字符串,這反過來又讓我懷疑是否使用不安全和危險的做法來構建SQL,而不是參數化查詢,其中日期格式爲_doesn'這件事情。 –