поле <currentdate - 7 формат даты - PullRequest
1 голос
/ 11 июля 2019

Мое поле даты и времени имеет формат даты M / dd / yyyy.Дата SQL Server указана в формате даты гггг-мм-дд.Мне нужно получить текущую дату -7 дней и отформатировать вывод

Пример.

SELECT * FROM [Table]
WHERE Time Generated >= current date - 7 days 

Вывод текущей даты - 7 должен быть М / дд / гггг

SELECT FORMAT(Getdate(), 'MM dd, yyyy')

DECLARE @date varchar(30) = FORMAT(getdate(), 'M/dd/yyyy');  
SELECT Computer, AppFileDisplayName FROM DHAppReliability
WHERE HasCrashesDaily = 'TRUE'
AND TimeGenerated <= DATEADD(DAY, -7, @date)
ORDER BY Computer

Msg 241, Уровень 16, Состояние 1, Строка 2 Преобразование не удалось при преобразовании датыи / или время из символьной строки.

1 Ответ

1 голос
/ 11 июля 2019

Исправьте ваши данные!Не храните даты в виде строк.

В любом случае, вам нужно сделать сравнение, используя встроенную функцию даты / времени.Это будет:

SELECT Computer, AppFileDisplayName FROM DHAppReliability
WHERE HasCrashesDaily = 'TRUE' AND
      CONVERT(date, TimeGenerated, 101) <= DATEADD(DAY, -7, @date)
ORDER BY Computer

Я не уверен на 100%, что формат 101 является правильным форматом, потому что вы не предоставили пример данных.

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