第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

轉(zhuǎn)換和驗(yàn)證日期字符串的最佳方法

轉(zhuǎn)換和驗(yàn)證日期字符串的最佳方法

子衿沉夜 2019-11-04 10:32:31
我在存儲(chǔ)過程中有一個(gè)格式化為ddmmyyyyy的單個(gè)char(8)變量(該值的質(zhì)量和有效性是未知的,超出了我的控制范圍)。什么是價(jià)值遷入日期時(shí)間變量,如果它不是有效的datetime拋出一個(gè)錯(cuò)誤的最好最有效的方式。DECLARE @Source       char(8)DECLARE @Destination  datetimeSET @Source='07152009'--your solution hereSELECT @Destination這是我能想到的最好方法:DECLARE @Source             char(8)DECLARE @Temp               varchar(10)DECLARE @Destination        datetimeset @Source='07152009'SET @Temp=LEFT(@Source,2)+'/'+SUBSTRING(@Source,3,2)+'/'+RIGHT(@Source,4)IF ISDATE(@Temp)!=1BEGIN    RAISERROR('ERROR, invalid date',16,1)ENDSET @Destination=@TempSELECT @Source AS Source, @Temp AS  Temp, @Destination AS Destination編輯這就是我要去的...DECLARE @Source             char(8)DECLARE @Destination        datetimeset @Source='07152009'BEGIN TRY    SET @Destination=CONVERT(datetime,RIGHT(@Source,4)        -- YYYY                                      +LEFT(@Source,2)        -- MM                                      +SUBSTRING(@Source,3,2) -- DD                             )END TRYBEGIN CATCH    PRINT 'ERROR!!!' --I'll add a little more logic here and abort processingEND CATCHSELECT @Source AS Source, @Destination AS Destination
查看完整描述

3 回答

?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

您可以使用SET DATEFORMAT保證日期-月份-年份的訂單。這意味著ISDATE會(huì)將“ 15-07-2009”解析為2009年7月15日


否則,鑒于外部限制,您的方法就足夠好了...但是您也可以重新排序?yàn)锳NSI / ISO。


在marc_s回答之后:“ SET DATEFORMAT dmy”適用于大多數(shù)歐洲設(shè)置...


好:


SET LANGUAGE british

SELECT ISDATE('2009-07-15') --this is ansi says marc_s. It gives "zero"

SELECT ISDATE('2009-07-15T11:22:33') --this really is ANSI and gives true



SET LANGUAGE german

SELECT ISDATE('2009-07-15') --false

SELECT ISDATE('2009-07-15T11:22:33') --true


查看完整回答
反對(duì) 回復(fù) 2019-11-04
?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊

我的系統(tǒng)處于受控環(huán)境中,不會(huì)出現(xiàn)瑞士-德國日期轉(zhuǎn)換問題。我確實(shí)喜歡嘗試捕捉的想法。我可能會(huì)刪除IF ISDATE()和@Temp,然后在執(zhí)行SET @ Destination = LEFT(@ Source,2)+'/'+ SUBSTRING(@ Source,3,2)時(shí)捕獲轉(zhuǎn)換錯(cuò)誤(如果有的話) +'/'+ RIGHT(@ Source,4)

查看完整回答
反對(duì) 回復(fù) 2019-11-04
  • 3 回答
  • 0 關(guān)注
  • 451 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)