Ik werk met een database die helaas een datum + tijd opslaat als varchar. Nu converteer ik deze string naar een datum en haal ik het tijd gedeelte eraf op de volgende manier:
De datum wordt nu goed weergegeven, maar vreemd genoeg heb ik nog wel een probleem. Ik wil namelijk totaliseren (SUM) op een veld genaamd "regularhrs".
De query "ziet" op een of andere manier de tijd nog steeds in de datum staan en totaliseert daarom mijn uren niet.
Voorbeeld (versimpeld):
Orginele waarden in database:
(datum, aantal uren)
1-1-2009 7:00, 8
1-1-2009 14:00, 2
Mijn query maakt er van:
1-1-2009, 8
1-1-2009, 2
Maar wat ik eigenlijk wil:
1-1-2009, 10
Wat doe ik fout? Ik heb me helemaal kapot gezocht op Google, en kom er niet meer uit.
--Erwin
code:
1
| CONVERT(varchar, startdate, 105) AS startdate |
De datum wordt nu goed weergegeven, maar vreemd genoeg heb ik nog wel een probleem. Ik wil namelijk totaliseren (SUM) op een veld genaamd "regularhrs".
De query "ziet" op een of andere manier de tijd nog steeds in de datum staan en totaliseert daarom mijn uren niet.
Voorbeeld (versimpeld):
Orginele waarden in database:
(datum, aantal uren)
1-1-2009 7:00, 8
1-1-2009 14:00, 2
Mijn query maakt er van:
1-1-2009, 8
1-1-2009, 2
Maar wat ik eigenlijk wil:
1-1-2009, 10
Wat doe ik fout? Ik heb me helemaal kapot gezocht op Google, en kom er niet meer uit.
code:
1
2
3
4
5
6
| "SELECT craft, laborcode, SUM(regularhrs) AS hrs, transtype, CONVERT(varchar, startdate, 105) AS startdate " + "FROM dbo.labtrans WHERE " + "(DATEPART(year, enterdate) = @year) AND " + "(DATEPART(month, enterdate) = @month) AND " + "(DATEPART(day, enterdate) = @day) " + "GROUP BY craft, laborcode, startdate, transtype"; |
--Erwin