1. 程式人生 > 其它 >關於format使用區域的版本注意事項,變通方法可以去試試

關於format使用區域的版本注意事項,變通方法可以去試試

問題:
博主看到專案指令碼,有些地方使用了format函式來把當前日期轉換成yyyyMMddHHmmssffff的格式,但在測試環境資料庫是sql 2008 r2,是不支援format這個函式的。指令碼會報錯:

  • 'format' 不是可以識別的 內建函式名稱。
  • 'format' is not a recognized built-in function name.

解決方案:
由於低版本的SQL不支援format,例如sql 2008\2005\2000,需要使用其他方法來代替。
博主經過試驗,使用了convert函式和replace函式相結合的方式,實現了適配相容低版本SQL。

指令碼:

/*
    指令碼來源:https://www.cnblogs.com/zhang502219048/p/11225240.html
*/

/*
    sql 2008 / sql 2005 / sql 2000不支援format函式,執行指令碼會報錯:
    'format' 不是可以識別的 內建函式名稱。
    'format' is not a recognized built-in function name.
*/
select format(getdate(),'yyyyMMddHHmmssffff')

--改成適配相容舊版本sql的寫法
select replace(replace(replace(replace(convert(varchar,getdate(),25),'-',''),' ',''),':',''),'.','') + '0'

指令碼執行結果:

總結:
博主在這裡就為大家分享了自己在工作過程中所編寫的相容舊版本SQL生成yyyyMMddHHmmssffff格式時間字串的方法,如果你也需要可以直接拿來主義應用到實際工作中而不用進行重複構思程式設計。【轉載請註明博文來源:https://www.cnblogs.com/zhang502219048/p/11225240.html