Как я могу сравнить тип данных datetime со строкой? - PullRequest
1 голос
/ 20 декабря 2011

Я хотел бы сравнить тип данных datetime, например "20/12/2011 00:00:00", с составным форматом даты строки (я имею в виду, что он состоит из строки даты, строки месяца и строки года) ,

Например, столбец entime - это тип данных timetime, в котором хранятся данные «20/12/2011 00:00:00», а остальные три столбца (дата, месяц, год соответственно) - строки. поэтому я хочу сравнить столбец entime с датой, месяцем и годом, составленными вместе. Как мне написать команду SQL, чтобы удовлетворить вышеуказанное требование?

Надеюсь, вы можете мне помочь?

Ответы [ 4 ]

0 голосов
/ 20 декабря 2011

Это ваше требование?

DECLARE @tblTemp TABLE
(
    DAY VARCHAR(10)
    ,Month VARCHAR(10)
    ,Year VARCHAR(10)
)
DECLARE @dtDateTime VARCHAR(10) = '20/12/2011 00:00:00'

INSERT INTO @tblTemp VALUES
('01','01','2011'),
('01','02','2011'),
('01','03','2011'),
('01','04','2012');

select * from @tblTemp where CONVERT(DATE,Year +Month+DAY ,103) <  CONVERT(DATE,@dtDateTime,103)
0 голосов
/ 20 декабря 2011

Существует также функция DATEPART в качестве альтернативы.

SELECT * 
FROM DateTable 
WHERE 
DATEPART(YEAR, [DATECOLUMN]) = @YearString
AND DATEPART(MONTH, [DATECOLUMN]) = @MonthString
AND DATEPART(DAY, [DATECOLUMN]) = @DayString
0 голосов
/ 20 декабря 2011

Вы можете пойти ниже, попробуйте, спасибо

SET DATEFORMAT DMY
SELECT CAST(CONVERT(VARCHAR(15), GETDATE(), 105) AS DATETIME)
SELECT CAST(('20'+'-'+'12'+'-'+'2011') AS DATETIME)

Как пример:

SET DATEFORMAT DMY
SELECT CAST(CONVERT(VARCHAR(15), yourDateColumn, 105) AS DATETIME) FROM TableName

SELECT CAST((dayColumn+'-'+monthColumn+'-'+yearColumn) AS DATETIME) 
     FROM anotherTable

Наконец, сравнение:

SELECT t1.* FROM tableName t1, anotherTable t2
WHERE CAST(CONVERT(VARCHAR(15), t1.DateColumnName, 105) AS DATETIME) 
    = CAST((t2.dayColumn+'-'+t2.monthColumn+'-'+t2.yearColumn) AS DATETIME)
0 голосов
/ 20 декабря 2011

Лучший вариант - преобразовать дату и время в строку, а затем сделать необходимые сравнения.

Вы можете увидеть здесь , как сделать преобразование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...