[MS SQL Server 2005] converteren datum icm formule

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Nukar
  • Registratie: Januari 2009
  • Laatst online: 05-09 15:08
Dag tweakers,
Ik heb hulp nodig bij een SQL uitvraag binnen MS SQL Server 2005.

Mijn bedoeling is de huidige leeftijd van een product op te zoeken in hele jaren. En daarna een count per leeftijd.
Voor het bepalen van de huidige datum gebruik ik de functie
getdate() - dit geeft formaat YYYY-MM-DD uu:mm:ss.000

Voor de bepaling van de leeftijd wil ik een kolom 'eerste_entry' gebruiken. Echter deze heeft het formaat YYYYMMDD

Voor de leeftijd bepaling van de leeftijd moet ik dus
A getdate converteren naar formaat YYYYMMDD
= convert(varchar(8),getdate(), 112) as [YYYYMMDD] -

B jaartallen uitvragen
= year(getdate()) - eerste_entry/10000

Omdat ik leeftijd voor vandaag wil weten is B geen optie. Hiermee bepaal ik de leeftijd per 01-01-2010.
Dus blijft A over.
Echter zodra ik de formule na de convert wil uitwerken blijf ik foutmeldingen krijgen.

De query
SQL: jaar.sql
1
2
3
SELECT   convert(varchar(8),getdate(), 112) as [YYYYMMDD]  - eerste_entry, count(*)
FROM      artikelen
GROUP BY     convert(varchar(8),getdate(), 112) as [YYYYMMDD]  - eerste_entry


De melding:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '-'.


De convert tussen () plaatsen geeft de melding:
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'as'.


Aangezien ik hier al vastloop heb ik het verschil nog niet terug gebracht naar hele jaren., ik dacht dit op te lossen door de uitkomst te delen door 10000

Alle suggesties zijn welkom.

Alvast bedankt!

"Today is the worst day since yesterday"


Acties:
  • 0 Henk 'm!

  • pkouwer
  • Registratie: November 2001
  • Laatst online: 13-09 21:05
moet je niet aanhalingstekens of qoutes gebruiken rond de tabelnaam ??

Acties:
  • 0 Henk 'm!

  • Nukar
  • Registratie: Januari 2009
  • Laatst online: 05-09 15:08
pkouwer schreef op woensdag 10 november 2010 @ 12:53:
moet je niet aanhalingstekens of qoutes gebruiken rond de tabelnaam ??
Nee dat hoeft niet, kan wel. Maar je opmerking heeft mij wel op mijn fout gewezen. Dus bedankt!
Het toekennen van een kolomnaam aan de convert hoort hier helemaal niet thuis.

Deze formule werkt wel
SQL: jaar.sql
1
2
3
SELECT   (convert(varchar(8),getdate(), 112)   - eerste_entry)/10000, count(*)
FROM      artikelen
GROUP BY    (convert(varchar(8),getdate(), 112)   - eerste_entry)/10000

"Today is the worst day since yesterday"