2012-03-15 63 views
-1

我有一個日期問題。例如,如果日期格式爲2010-10-10 22:10:00.000,這是一個有效日期並插入到我的數據庫表中。如何將無效日期轉換爲SQL中的有效日期

但是,如果日期格式是2010-10-10 25:10:00.000這是一個無效的日期。它會檢查小時數是否大於24,而不是在日期中增加一天,並從時間戳中減去24小時。

請指教。

回答

2

爲什麼你讓人們輸入自由形式的日期和時間,以便他們可以用無意義的方式填充它們?你是否也計劃迎合2010-13-132012-02-31?將下拉菜單放在表單中,以便用戶只能選擇有效的日期和時間,並在將它們發送到服務器之前進行驗證。

雖然解析這個垃圾可能是一種非常醜陋的方式,並且支持所有你想允許用戶打破的規則,但它不會很漂亮,在某些情況下,你可能實際上「糾正」一個錯字並進入用戶沒有真正打算的日期/時間。但是因爲你爲他們修正了錯誤,所以他們不知道他們甚至犯了一個錯誤。

+1

這是真的。用戶總是廢話。但作爲開發人員,我們不能說這是不可能的。用戶可以自由地提供錯誤的廢話數據,但我們已經找到了解決方案。 – Jeetesh 2012-03-15 13:54:53

+0

客戶端圖層中的一個很好的強類型參數化命令調用將會捕捉到這一點。隨機用戶鮑勃輸入'2010-10-10 25:10:00.000'確實*不會*將其重新轉換爲有效時間+ 1小時 – 2012-03-15 13:58:02