Как я могу получить даты без часов или минут в SQL-запросе, чтобы использовать COUNT
? Мне нужно, чтобы вы показали мне повторную сумму и день, когда она была сделана. Любое предложение? Будьте осторожны, мне нужен не MySQL, а SQL Server 2008 R2.
SELECT TOP 2000
a.UserID,
(a.CharName) as maton,
(a.DeadCharName) as Victima,
(b.[level])as nivel_de_Victima,
COUNT (a.DeadCharName) As Veces,
a.actiontime <<---- Campo Fecha a selecionar
FROM PS_GameLog.dbo.Kill_Log a
INNER JOIN PS_GameData.dbo.Chars b
on a.CharID = b.CharID
WHERE a.CharID = 62336
ORDER BY Veces DESC
GROUP BY a.UserID,a.CharName,a.DeadCharName,b.[level]
ORDER BY Veces DESC
Пример того, в каком формате указаны даты, мне нужно взять очевидные 11 цифр, включая дефисы.
2016-12-23 15:42:29.000
2016-12-23 15:42:28.000
2016-12-23 15:42:30.000
Если у вас есть SQL Server 2008+, вы можете преобразовать его в
DATE
:Если нет, вы можете преобразовать его в строку, содержащую только год, месяц и день:
Чтобы преобразовать поле даты в формат
YYYY-MM-DD
SQL Server 2008 R2, вы можете использовать функциюCONVERT
со следующими параметрами:Demo
Если формат, который вы хотите, скорее
DD-MM-YYYY
, то это будет так:Demo
Если вам просто нужна часть даты без времени для подсчета, то формат поля не имеет значения. В этом случае проще всего просто сделать
CAST
типDATE
:Demo
В более старой версии SQL (где она не работает
CONVERT(DATE,a.actiontime)
) я использовал:Я передаю дату в FLOAT, затем нахожу ее целую часть (таким образом удаляя время), наконец, она снова становится датой.