2016-11-10 54 views
0

我忙於編輯我創建的報表的存儲過程。 我遇到了一個問題,即發送到存儲過程的參數來自多臺計算機的各種時髦格式。日期以多種不同格式發送到SQL,我該如何處理?

一些我遇到了一直

'2017年1月31日'

'2017-31-01'

'01 -01-2017'

格式'31012017'

'20170131'

我迫切需要一種方法來處理人這些不同的格式。 '31012017'給我一個輸入錯誤,所以它甚至不想到達我的轉換器,所以我使輸入參數爲VARCHAR(15)來接受各種輸入。

+3

您需要修復存儲過程以採取正確的數據類型 - 本例中的日期 - 然後修復調用代碼,以便將其傳入。 –

+1

含有不明確的格式和值('01 -01-2017') ,你永遠只會猜測 – Lamak

+0

這絕對聽起來像你需要有一個談話與提供信息的人員/團隊保持一致。它是來自某種網頁形式嗎?處理表單的應用程序是否可以針對本地化進行調整?根據您的使用情況,當傳入值不可分析時最好失敗。 – axlj

回答

0

最好的可能的修復我發現了以下(幾乎所有格式的作品)

https://i.stack.imgur.com/MLARE.png

這樣它拿起其中的任何電腦使用的是正在使用和將標準化的格式到SQL格式

0

您可以對日期格式進行一些有根據的猜測,但是您可以猜出多少限制。

規範日期ussually是ISO兼容,所以yyyy-mm-dd - 我從來沒有見過類似2017-31-01的東西。

問題是當你得到像11-11-2011或甚至更糟 - 10/11/11。如果沒有其他信息,則無法確定。

+0

嘿下面的評論修復了這個問題,它現在接受了大部分格式......我花了2天的時間試圖讓sql接受各種時髦的格式,最後我所要做的只是改變一個屬性 –