我在传统的ASP页面上使用以下SQL语法。 HostLatitude
不幸是nvarchar(20)
,因此十进制转换。SQL生成错误
SELECT
HostID, HostLatitude, HostLongitude, HostNames, HostPropertyName,
HostStreet, HostSuburb, HostCity, HostPhone, HostMobile,
HostLastUpdated, HostJoinDate, HostPostCode, hgbCounter, HostStateID
FROM
Hosts
WHERE
HostLatitude IS NOT NULL
AND Datalength(HostLatitude) > 5
AND CONVERT(decimal, HostLatitude) > 51
AND CONVERT(decimal, HostLatitude) < 53
AND HostRegionID = 303
AND HostLastUpdated >CONVERT(DATETIME, '2012-02-21 00:00:00', 102) - 730
AND Datalength(HostLatitude) > 2
AND Datalength(HostLongitude) > 1
AND HostApproved = 1
AND HostDisabled = 0
AND AdminDisabled = 0
ORDER BY
HostID DESC;
我收到以下错误:
Msg 8114, Level 16, State 5, Line 1
Error converting data type nvarchar to numeric.
如果我注释掉下面的查询运行:
AND CONVERT(decimal, HostLatitude) > 51
AND CONVERT(decimal, HostLatitude) < 53
是什么HostLatitude价值?我认为有一些值不能转换为十进制,请检查表中HostLatitude的值。 – 2012-02-21 05:36:30
您是否认为它可能与本专栏的*内容*有关,因此可能值得向我们展示一些示例值? – 2012-02-21 05:39:56
@Damien_The_Unbeliever你是否认为,也许,如果他意识到他不需要提出这个问题;) – 2012-02-21 05:41:24