![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 小魚兒 ![]()
![]() ![]() |
請問一下 我在語法裡之前使用都正常可以使用(SQL 2000,2005) 但這1~2天有客戶反應後台資料已輸入了,但前台無資料顯示,查到結果我發現客戶資料是SQL Server 2014, 結果它出現了錯誤訊息: 訊息 242,層級 16,狀態 3,行 1 將 nvarchar 資料類型轉換成 datetime 資料類型時,產生超出範圍的值。 好像在SQL Server 2014不能這樣用,無法查詢活動日期的範圍值,結果我目前是將 DataTime 改成 Nvarchar(20),再去抓它的日期範圍,資料是有出來的 修改後語法:(CAST(EDate + ' ' + ETime AS nvarchar(20))>= CAST('2016/06/08 15:43' AS nvarchar(30))) 不知道這樣利用Nvarchar去取範圍值是否會有影響結果呢? 各欄位型態如下-- EDate - Nvarchar(10) ETime - Nvarchar(10)
搜尋相關Tags的文章:
[ Cast ] , [ Date ] , [ Time ] , [ nvarchar ] , [ datetime ] , [ nvarchar 資料類型轉換成 ] ,
本篇文章發表於2016-06-08 16:27 |
1樓
最有價值解答
彩虹 ![]() |
將「CAST」改用「convert」
convert(datetime, '2016-10-23 20:44:11', 120) 註:第3個參數可自行調整,「120」格式代表為:yyyy-mm-dd hh:mm:ss 我覺得這ㄧ篇你可以參考一下 How to convert D.M.YYYY string to DATETIME? http://stackoverflow.com/questions/28602412/how-to-convert-d-m-yyyy-string-to-datetimehttp://stackoverflow.com/questions/28602412/how-to-convert-d-m-yyyy-string-to-datetime 詳細參數 How to convert from string to datetime? http://www.sqlusa.com/bestpractices/datetimeconversion/
本篇文章回覆於2016-06-08 17:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓 |
利用 ISDATE() 來檢查 EDate 和 ETime 合併後的字串日期,是否可以正常轉換為 datetime,檢查資料本身是不是有異常
EDate(EX:2016/06/08)和 ETime(15:43)的資料欄位,用不到 nvarchar,理論上兩欄位資料都是固定且用不到 unicode,用 char 比較節省空間 用案例探討資料庫設計的重要性 https://channel9.msdn.com/Series/SQL-PASS-TAIWAN/20150730
本篇文章回覆於2016-06-08 22:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓 |
SQL Server 2012 推出的轉換函數,也可以把字串日期轉為 datetime
轉換函數 https://msdn.microsoft.com/zh-tw/library/hh231076
本篇文章回覆於2016-06-09 08:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |