В SQL Я запрашиваю базу данных между диапазоном дат, но вывод даёт даты через 4 года. Я использую Excel - мастер Get External Data
.Тот же SQL-запрос - предоставление другого вывода
SELECT *
,convert(varchar(3), DATENAME(MONTH, CreditNote_Date)) as Fin_Month
,datepart(wk, CreditNote_Date) as as Fin_Week
FROM
--blah
WHERE -- blah
AND (CreditNote_Date between convert (datetime, '2014-12-29 00:00:00', 102)
and convert (datetime, '2015-12-27 00:00:00', 102))
Однако, когда тот же запрос выполняется в SQL Server Management Studio, я получаю правильные даты 2014/2015. Кажется, что они соответствуют тем же строкам. Некоторые строки были прокомментированы из-за конфиденциальности, но спросите, требуется ли дополнительная информация.
Как ваши даты сохраняются в базе данных? –
Тип данных «smalldatetime» - это то, о чем вы просите? – hgeop
@hgeop. , , Не используйте 'between' с значениями datetime. Я бы предложил вам прочитать этот блог, http://sqlblog.com/blogs/aaron_bertrand/archive/2011/10/19/what-do-between-and-the-devil-have-in-common.aspx, а затем закодируйте свой SQL соответственно. По крайней мере, вы предотвратите будущие проблемы. Формат –