Я написал SQL, который выбирает данные между датой и другим.По сути, проблема связана с форматом даты, который я хотел сделать.
Мое имя столбца - date_tm, и примеры данных выглядят так: 2011-04-04 00: 30: 19.107
My Sqlкак это:
DECLARE @Date_From DATETIME;
DECLARE @Date_To DATETIME;
SET @Date_From = CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-1,120);
SET @Date_To = CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-1,120);
select distinct no, lot
from database.dbo.TblName
Where Convert(varchar(10), Date_Tm, 120) Between '@Date_From' And '@Date_To';
Я пытаюсь отладить его с помощью этого
Print(@Date_From);
Print(@Date_To);
Вывод что-то вроде этого "6 ноября 2011 12:00 утра" я не преобразую его уже?а затем я проверил с оператором select, как это:
select CONVERT(VARCHAR(10),DATEADD(d,DATEDIFF(d,0,GETDATE()),0)-1,120);
Вывод что-то вроде этого "2011-11-06", почему его работа здесь?
Выберите результат ничего == "
Затем я провожу много тестов относительно этого формата даты. Я пытаюсь выполнить прямой анализ в date_from и Date_to
where Convert(varchar(10), Date_Tm, 120) Between '2011-04-04' And '2011-04-04'
Я получаю то, что ожидается
В любом случаехотел получить данные по диапазону дат. Я ломаю голову этим методом конвертации == "
Пожалуйста, помогите мне.
Спасибо:
PS: Пожалуйста, нестесняйтесь высказать мою ошибку.мы все учимся на ошибках и извиняемся за мой плохой английский.
С уважением:
LiangCk