Binnen mijn werk waar ik regelmatig moet samenwerken met Oracle specialisten krijg ik vaak opmerkingen over de datum functies van MS T_SQL.
"Ze zijn niet handig, lastig in gebruik, waarom kan ik niet gewoon net als in oracle gebruikmaken van bv: to_date('01-JAN-2002'),'YYYYMMDD') maar moet ik getal codes gebruiken?"
CONVERT(VARCHAR(8),GETDATE(),112) = yyyymmdd (ISO) of CONVERT(VARCHAR(10),GETDATE(),103) = dd/mm/yyyy (ISO)
Naar mijn mening het is niet moeilijker maar anders en je moet er aan wennen.
Kan je echter niet wennen aan de CONVERT functie van MS T-SQL dan zijn er nog voldoende andere mogelijkheden die voldoende flexibiliteit bieden.
Voor een overzicht kijk je een keer op: http://msdn.microsoft.com/en-us/library/ms186724.aspx
DATEPART is de meest flexibele functie die je kan gebruiken om ieder formaat aan je datum te geven. Ok, het is niet zo eenvoudig als to_date, maar dat is voor 99% wennen.
CONVERT(VARCHAR(8),GETDATE(),112) = yyyymmdd (ISO) of CONVERT(VARCHAR(10),GETDATE(),103) = dd/mm/yyyy (ISO)
Naar mijn mening het is niet moeilijker maar anders en je moet er aan wennen.
Kan je echter niet wennen aan de CONVERT functie van MS T-SQL dan zijn er nog voldoende andere mogelijkheden die voldoende flexibiliteit bieden.
Voor een overzicht kijk je een keer op: http://msdn.microsoft.com/en-us/library/ms186724.aspx
DATEPART is de meest flexibele functie die je kan gebruiken om ieder formaat aan je datum te geven. Ok, het is niet zo eenvoudig als to_date, maar dat is voor 99% wennen.
SELECT
CAST(DATEPART(yyyy,GETDATE()) AS VARCHAR(4)) AS 'Jaar'
, CAST(DATEPART(mm,GETDATE()) AS VARCHAR(2)) AS 'Maand'
, CAST(DATEPART(dd,GETDATE()) AS VARCHAR(2)) AS 'Dag'
, CAST(DATEPART(yyyy,GETDATE()) AS VARCHAR(4)) +
RIGHT('0'+CAST(DATEPART(mm,GETDATE()) AS VARCHAR(2)),2) +
RIGHT('0'+CAST(DATEPART(dd,GETDATE()) AS VARCHAR(2)),2) AS 'yyyymmdd'
Resulteerd in:
Resulteerd in:
Jaar Maand Dag yyyymmdd
---- ----- ---- --------
2009 9 16 20090916
Wil je alleen jaar,maand,dag wilt gebruiken kan dit natuurlijk ook met 3 specifieke functies:
Wil je alleen jaar,maand,dag wilt gebruiken kan dit natuurlijk ook met 3 specifieke functies:
SELECT
DAY(GETDATE()) AS 'Dag'
, MONTH(GETDATE()) AS 'Maand'
, YEAR(GETDATE()) AS 'Jaar'
"Moet ik dan iedere keer een lange query typen om iets eenvoudigs te realiseren". Kijk dan eens naar de mogelijkheden van SQL Server Management Studio Template Explorer.
"Moet ik dan iedere keer een lange query typen om iets eenvoudigs te realiseren". Kijk dan eens naar de mogelijkheden van SQL Server Management Studio Template Explorer.
Geen opmerkingen:
Een reactie posten