Wie viele Stored Procedures jeden Tag erstellt (Problem für Datum und Uhrzeit bei der Umwandlung)?
-
30-09-2019 - |
Frage
Ich mache eine Abfrage, die Rückkehr der Anzahl der gespeicherten Prozedur mir, dass alltägliche wie folgt erstellt
SELECT convert(varchar, crdate, 103) as Date,Count(*) as Counter
FROM sysobjects
WHERE (xtype = 'p') AND (name NOT LIKE 'dt%')
Group by convert(varchar, crdate, 103)
und seine bereits Arbeit aber Daten erscheinen im String-Format, dass ich es nicht bestellen kann wie unter
01/03/2010 3
01/04/2008 4
01/05/2010 5
01/11/2008 1
01/12/2008 4
02/03/2008 1
02/03/2010 2
02/04/2008 4
02/05/2010 2
02/11/2008 2
02/11/2009 2
02/12/2008 4
03/01/2010 1
03/02/2010 2
03/03/2010 2
03/04/2008 2
03/04/2010 2
03/05/2008 1
03/05/2010 2
Ich mag, dass in dem Zeitpunkt in Datetime-Format ist, dass ich order by
erfolgreich machen kann, habe ich versucht, convert(datetime, crdate, 103)
aber es zeigt Voll Datum
jede Vorstellung davon, wie zu tun?
Lösung
Um ein sortierbare Datum erhalten Sie Jahr benötigen, dann Monat, dann Datum. Verwendung Format "112".
SELECT convert(varchar, crdate, 112) as Date,Count(*) as Counter
FROM sysobjects
WHERE (xtype = 'p') AND (name NOT LIKE 'dt%')
Group by convert(varchar, crdate, 112)
order by Date
das gibt diese:
Date Counter
20040711 124
20040713 1
20040725 1
20040726 2
20040803 6
Wenn Sie die richtige Reihenfolge, um aber eine unterschiedlich formatierte Datum erhalten möchten, dann können Sie eine Unterabfrage wie diese verwendet werden.
select CONVERT(varchar, GroupDate, 103) Date, Counter
FROM (
SELECT MIN(crdate) as GroupDate,Count(*) as Counter
FROM sysobjects
WHERE (xtype = 'p') AND (name NOT LIKE 'dt%')
Group by convert(varchar, crdate, 112)
) A
order by GroupDate
welche Ausbeuten
Date Counter
11/07/2004 124
13/07/2004 1
25/07/2004 1
26/07/2004 2
03/08/2004 6
Andere Tipps
Wie wäre es damit:
select dt, COUNT(*) from
(
SELECT convert(datetime, convert(varchar, crdate, 112)) as dt
FROM sysobjects
WHERE (xtype = 'p') AND (name NOT LIKE 'dt%')
) DayOnly
group by dt
order by dt asc
SELECT DATEADD(day, DATEDIFF(day, 0, o.crdate), 0) [Date],
COUNT(*) [Counter]
FROM sys.sysobjects o
WHERE o.xtype = 'p' AND o.name NOT LIKE 'dt%'
GROUP BY DATEADD(day, DATEDIFF(day, 0, o.crdate), 0)