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,但這種解決辦法的正確性倒是可以嘗試證明一下。首先需要明確什麼叫正確性,充要條件暫時沒有想到,先列舉幾個必要條件,至少這些條件需要能成立 本身的值表示正確 本身的符號表示正確 運算結果的值表示正確 運算結果的符號表示正確 接下來證明每乙個條件 一定正...