Я использую следующий синтаксис SQL на классической странице ASP.HostLatitude
к сожалению nvarchar(20)
, следовательно, десятичное преобразование.
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;
Я получаю следующую ошибку:
Сообщение 8114, уровень 16, состояние 5, строка1
Ошибка преобразования типа данных nvarchar в числовой.
Если я закомментирую следующее, запрос будет выполнен:
AND CONVERT(decimal, HostLatitude) > 51
AND CONVERT(decimal, HostLatitude) < 53