Получить COUNT на основе даты, когда столбец является отметкой времени в запросе T-SQL? - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь получить счет на основе даты, но столбец является меткой времени. Я думаю, что мне нужно поместить функцию приведения после оператора FROM, но не уверен.

Select Count(X), Cast(Y as date)
From table
Where Y = '2019-04-01';

Я перепробовал несколько производных вышеупомянутого запроса, я выполнил некоторые запросы, но все еще не смог получить фактический результат. Я не могу найти хороший пример в Google, поэтому я подумал, что кто-то здесь мог столкнуться с этой проблемой. TO_CHAR и TRUNK не поддерживаются.

Текущий код:

SELECT COUNT([X]), CAST(Y AS date)
FROM table
WHERE Y = '04/01/2019'
GROUP BY Y ORDER BY Y;

Запускается, но не возвращает выходных данных (я знаю, что есть результаты).


SELECT COUNT([email]), processed
FROM [AJM].[dbo].[EmailSend]
CAST(processed AS date)
WHERE processed = '04/01/2019'

Группировать по обработанному заказу по обработанному;

Ошибка:

«обработано» не является опознанной табличной подсказкой. Если он предназначен в качестве параметра для табличной функции или функции CHANGETABLE, убедитесь, что для режима совместимости базы данных установлено значение 90.

Цель состоит в том, чтобы получить счетчик X или Yк указанной дате.

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

Если вы сравниваете дату и метку времени, вам, вероятно, не повезет. Попробуйте следующее:

SELECT COUNT([X]), CAST(Y AS date)
FROM table
WHERE Y = CAST('2019-04-01' as TIMESTAMP)
GROUP BY Y ORDER BY Y;

Используя правую сторону вместо левой, вы все равно можете воспользоваться индексированием.

0 голосов
/ 05 ноября 2019

тебе нужно что-то вроде следующего?

SELECT COUNT([email]), processed
FROM [AJM].[dbo].[EmailSend]
WHERE CAST(processed AS date) = '04/01/2019'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...