webForumDet fria alternativet

Ta bort tid från datum i sql?

5 svar · 2 339 visningar · startad av butiko

butikoMedlem sedan jan. 2007152 inlägg
#1

Sliter mitt hår för att komma på något fiffigt sätt att plocka bort tiden från en datetime i sql. Har visserligen lyckats men lösningen är en riktig fuling så jag undrar om det finns någon som har något bättre sätt? Så här har jag gjort:

SELECT 
substring(convert(varchar(20), getdate(), 112),0,5) + '-' +
substring(convert(varchar(20), getdate(), 112),5,7) + '-' +
substring(convert(varchar(20), getdate(), 112),7,9)

Anledningen till substrängen är att jag inte lyckas få datumet att följa svensk standard, dvs 2008-01-01 (det närmsta jag kommit är 20080101 och det är de jag använder här ovan men då måste jag ju manuellt stoppa in bindestreck). Jag kan heller inte göra en substring direkt på ett datum så jag måste konvertera det först och jag lyckas inte konvertera det utan att ändra datumformatet!

Nä, fråga inte varför jag överhuvudtaget ska göra så här... :p

@ndersMedlem sedan juni 200032 969 inlägg
#2

Du borde slita ditt hår lite mer, då kanske du skulle hitta sökfunktionen på wF - eller bara lyckats kika lite längre ner i trådlistan. ;)

http://www.webforum.nu/showthread.php?t=164775

butikoMedlem sedan jan. 2007152 inlägg
#3

Åhå... :r Efter lite omskrivning så blev lösningen så här snajsig:

SUBSTRING(CAST(CONVERT(VARCHAR(10),getdate(), 120) AS NVARCHAR),0,11)
aasahMedlem sedan mars 20034 471 inlägg
#4

Vad står 120 för i det svaret???

@ndersMedlem sedan juni 200032 969 inlägg
#5

120 är ett datumformat som ser ut sisomså: YYYY-MM-DD HH:MI:SS(24h)

Du kan läsa mer om datumformat i SQL Server här.

mvh

aasahMedlem sedan mars 20034 471 inlägg
#6

Tack, @nders! :birp

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)