我忙於編輯我創建的報表的存儲過程。 我遇到了一個問題,即發送到存儲過程的參數來自多臺計算機的各種時髦格式。日期以多種不同格式發送到SQL,我該如何處理?
一些我遇到了一直
'2017年1月31日'
'2017-31-01'
'01 -01-2017'
格式'31012017'
'20170131'
我迫切需要一種方法來處理人這些不同的格式。 '31012017'給我一個輸入錯誤,所以它甚至不想到達我的轉換器,所以我使輸入參數爲VARCHAR(15)來接受各種輸入。
我忙於編輯我創建的報表的存儲過程。 我遇到了一個問題,即發送到存儲過程的參數來自多臺計算機的各種時髦格式。日期以多種不同格式發送到SQL,我該如何處理?
一些我遇到了一直
'2017年1月31日'
'2017-31-01'
'01 -01-2017'
格式'31012017'
'20170131'
我迫切需要一種方法來處理人這些不同的格式。 '31012017'給我一個輸入錯誤,所以它甚至不想到達我的轉換器,所以我使輸入參數爲VARCHAR(15)來接受各種輸入。
您可以對日期格式進行一些有根據的猜測,但是您可以猜出多少限制。
規範日期ussually是ISO兼容,所以yyyy-mm-dd - 我從來沒有見過類似2017-31-01的東西。
問題是當你得到像11-11-2011或甚至更糟 - 10/11/11。如果沒有其他信息,則無法確定。
嘿下面的評論修復了這個問題,它現在接受了大部分格式......我花了2天的時間試圖讓sql接受各種時髦的格式,最後我所要做的只是改變一個屬性 –
您需要修復存儲過程以採取正確的數據類型 - 本例中的日期 - 然後修復調用代碼,以便將其傳入。 –
含有不明確的格式和值('01 -01-2017') ,你永遠只會猜測 – Lamak
這絕對聽起來像你需要有一個談話與提供信息的人員/團隊保持一致。它是來自某種網頁形式嗎?處理表單的應用程序是否可以針對本地化進行調整?根據您的使用情況,當傳入值不可分析時最好失敗。 – axlj