Son*_*nül 0 sql sql-server datetime
我SQL喜欢这个
SELECT B.HESAP_NO, A.TEKLIF_NO1 + '/' + A.TEKLIF_NO2 AS 'TEKLIF',
B.MUS_K_ISIM, CONVERT(VARCHAR(10),A.ISL_TAR,103) AS 'TARIH',
ISNULL(CAST(A.ODENEN_ANAPARA AS FLOAT),0)+ISNULL(CAST(A.FAIZ AS FLOAT),0)+
ISNULL(CAST(A.BSMV AS FLOAT),0)+ISNULL(CAST(A.GECIKME_FAIZ AS FLOAT),0)+
ISNULL(CAST(A.GECIKME_BSMV AS FLOAT),0) AS 'YATAN',
(CASE WHEN B.DOVIZ_KOD = 21 THEN 'EUR' WHEN B.DOVIZ_KOD = 2 THEN 'USD' WHEN B.DOVIZ_KOD = 1 THEN 'TL' END) AS 'KUR',
D.AVUKAT, CONVERT(VARCHAR(10),C.ICRA_TAR,103) AS '?CRA TAR?H?', CONVERT(VARCHAR(10),C.HACIZ_TAR,103) AS 'HAC?Z TAR?H?'
FROM YAZ..MARDATA.BIR_TAHSIL A, YAZ..MARDATA.S_TEKLIF B, TAKIP C, AVUKAT D, P_TAKIP_SR E
WHERE A.TEKLIF_NO1 = B.TEKLIF_NO1
AND A.TEKLIF_NO2 = B.TEKLIF_NO2
AND B.HESAP_NO = D.HESAP
AND D.HESAP = A.HESAP_NO
AND C.T_HESAP_NO = A.HESAP_NO
AND C.T_SRM = E.T_SR_ID
AND C.T_STATU = 2
AND C.T_SRM <> 6
AND A.ISL_TAR >= '21/02/2011'
AND A.ISL_TAR <= '28/02/2011'
GROUP BY B.HESAP_NO, A.TEKLIF_NO1 + '/' + A.TEKLIF_NO2,A.ISL_TAR,B.DOVIZ_KOD, B.HESAP_NO, B.MUS_K_ISIM, D.AVUKAT, C.ICRA_TAR, C.HACIZ_TAR, A.ODENEN_ANAPARA, A.FAIZ, A.BSMV, A.GECIKME_FAIZ, A.GECIKME_BSMV
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误.
Msg 242, Level 16, State 3, Line 1
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.
Run Code Online (Sandbox Code Playgroud)
我怎么解决这个问题?
最好的祝福,
Soner
它可能与您的dateformat设置有关.
这给我带来了同样的错误
set dateformat mdy
select 1
where GetDate() = '28/02/2011'
Run Code Online (Sandbox Code Playgroud)
事实并非如此
set dateformat dmy
select 1
where GetDate() = '28/02/2011'
Run Code Online (Sandbox Code Playgroud)
您可以使用转换而不是设置dateformat
convert(datetime, '28/02/2011', 103)
Run Code Online (Sandbox Code Playgroud)
或者您可以使用始终有效的ISO格式
2011-02-28
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |