Sql-Server-2012
從 2000 年遷移到 2012 年之後的 ODBC Curtime() 省略了 datepart
客戶端將數據庫從 SQL Server 2000 遷移到 2012。
之後他們的申請遇到了麻煩。原因是以下函式呼叫:
SELECT {fn curtime() }
在 SQL 2000 (‘2017-01-20 07:24:26.997’) 上返回日期 + 時間,但在 SQL 2012 上僅返回時間部分 (‘07:24:26.997’)。
兼容模式不能再設置回 90 (SQL 2005)。
鑑於無法更改應用程序,是否有任何替代解決方案可以解決此問題?
簡短的回答是,如果不更改應用程序,就無法解決此問題。
那
{fn curtime() }
是SQL Server 確實解釋的ODBC 標量函式,但實際上不應該在本機使用。改為使用
GetDate()
。(我想你可以
{fn curdate() }
結合使用{fn curtime() }
)我沒有再安裝 SQL 2000(那是 17 年前!),所以無法測試 {fn curtime() } 當時的情況,但我會假設它只會返回時間。也許不是,但現在沒有太大區別——你有點卡住了。
唯一的選擇是更改應用程序。理由不應該太難——一個只能在 SQL Server 2000 上執行的應用程序是不可接受的,它已經失去支持很長時間了——它是一個 17 年的系統。
較早的這篇文章類似,答案很好,並提供了更多資訊。
這實際上無關緊要,但我會添加它(您可以忽略這一點):
curtime()
是MySql 中的內置函式。您的案例絕對是 ODBC 語法,但它與 MySql 類似,所以我想將其添加為瑣事。