mysql校驗日期正確性 MySQL日期有效性

2021-10-17 22:16:37 字數 662 閱讀 5510

mysql是否提供驗證日期有效性的任何功能?例如,在提供無效日期2013-02-30時,date函式返回null.但是,我也同時使用str_to_date,這會神秘地阻止date正常工作.

select date('2013-02-30'); null

select str_to_date('2013-02-30', '%y-%m-%d'); not null

select date('2013-02-40'); null

select str_to_date('2013-02-40', '%y-%m-%d'); null

select date(str_to_date('2013-02-30', '%y-%m-%d')); not null

為什麼str_to_date會暫停date的功能,是否有一些解決方法可以在使用str_to_date(我有義務使用)時驗證日期是否有效?

我在此期間偶然發現了答案:當資料型別已經是』date'(str_to_date將字串轉換為日期資料型別)時,顯然date函式會跳過一些驗證檢查.因此,在使用str_to_date將日期解析為正確的格式後,將日期轉換為字串,可以解決問題:

@valid_date = not isnull(date(convert(str_to_date(『2013-02-29′,』%y-%m-%d』),char))).

健壯性與正確性

健壯性 robustness 與正確性 correctness 健壯性 robustness 表示系統在不正常輸入或不正常外部環境 下仍能夠表現正常的程度。當出錯後,會退出並提示資訊,或者容錯並轉為正常。乙個具有良好健壯性的軟體會讓使用者變得更容易,因為即使他們出錯也可以容忍,因為程式內部已經有容錯...

驗證正確性的方法

驗證正確性的方法 1 bug和除錯 bug的 嗎?除錯,就是找出程式中的錯誤並改正 演算法錯誤 是指乙個演算法中引起該演算法不能實現其預定目標的熱病和錯誤。主要包括四種基本型別 二義性,語法錯誤,語義錯誤,邏輯錯誤 1.1二義性,演算法中比較容易消除的一類。一般體現在指令表達不準確或者不明確。1.2...

補碼正確性的證明

雖然不知道大牛怎麼想到這樣解決補碼的正負表示問題1,但這種解決辦法的正確性倒是可以嘗試證明一下。首先需要明確什麼叫正確性,充要條件暫時沒有想到,先列舉幾個必要條件,至少這些條件需要能成立 本身的值表示正確 本身的符號表示正確 運算結果的值表示正確 運算結果的符號表示正確 接下來證明每乙個條件 一定正...