Ho una tabella come segue:Come ordinare per data in Sql Server GROUP BY data formattata?
FormattedDate Result Count
----------- ------ -----
May-23-2013 Pass 1
May-23-2014 Fail 1
May-23-2014 Pass 1
Jan-24-2015 Fail 1
Jan-26-2015 Fail 1
Jan-26-2015 Pass 2
I:
Table: student_test_records
Student TestDate Result
------- ------------------ -------
A 2015-01-26 17:28:11 Pass
B 2015-01-24 17:28:11 Fail
C 2015-01-26 17:28:11 Pass
D 2015-01-26 17:28:11 Fail
E 2014-05-23 17:28:11 Pass
F 2013-06-23 17:28:11 Pass
G 2014-05-23 17:28:11 Fail
Sto tentando di scrivere una query in SQL Server per visualizzare il numero di passati risultati al giorno nel seguente formato/fallito segue è la query ho tentato:
SELECT FORMAT(TestDate, 'MMM-dd-yyyy') as FormattedDate, Result, Count
FROM student_test_records
GROUP BY FORMAT(TestDate, 'MMM-dd-yyyy'), Result
order BY FORMAT(TestDate, 'MMM-dd-yyyy');
il set di risultati è corretto, ma l'ordine viene da stringa data formattata (mese-giorno-anno alfabetico alleato). Come posso ordinare il risultato alla data effettiva (TestDate)? In MySQL, avrei potuto fare ORDER BY TestDate
invece dell'ultima riga nella query precedente.
Wow, funziona! Potresti spiegare perché è necessario il cast? – devnull
perché è necessario rimuovere il timestamp, sqlserver non può riconoscere quel formato come una data. Sarebbe stato diverso se avessi usato convert/cast invece –