Tja, Det är en inställning i SQL-server, gå in och titta i hjälpfilen sqlbol.chm (Books online) Hur ett datum ser ut är en ren presentationsfråga. I SQL Server lagras datum på samma vis oavsett vad du har för inställningar, det är bara presentationen av dem du ställer in. Om du hämtar ut ett värde ur en kolumn av typen datetime till en variabel så är det fortfarande ett datum, och du kan presentera det som du vill och behandla det som ett datum (räkna differens i kalender etc). Handlar det om att skriva ut ett datum på ett visst vis så använder du lämpligen CONVERT i SQL Server för att göra om ditt datum till en sträng, där kan du ange vilket vis du vill formattera ditt datum på. Annars kan du förstås lämna presentationen och formatteringen till applikationen som hämtar datan ur SQL Server. intressant, i mitt fall är det t-sql som gäller varför jag endast har de funk att tillgå... > det finns inte någon funk motsv VBs för att konv till formatet yyyy-mm-dd i t-sql? Vet inte om [Fyra olika svenska datumformat] kan hjälpa dig på traven. Nej inte direkt, men problemet som sådant är löst via strängformatering. Vilka inställningar är det du syftar då på? Reg. Settings i CP eller finns det andra lokalt för SQL Server så att sägaDatumformatering i SQL Server
Undrar om det är någon som har tips på hur man ska göra för att formatera datum i SQL Server.
Jag har variabler i datetime format, fast det är den amerikanska modellen som används July 3 2003 12.00AM, hur göra för att få den till det svenska formatet yyyy-mm-dd?
Känner ni till någon fin länk där man kan hitta en artikel om ämnet datumformateringar tas även det emot tacksamt.
Tack.Sv: Datumformatering i SQL Server
som medföljer SQL server.
Titta på set dateformat med tillåtna inparametrar
mdy, dmy, ymd, ydm, myd, and dym
/EmmaSv: Datumformatering i SQL Server
Sv: Datumformatering i SQL Server
det finns inte någon funk motsv VBs för att konv till formatet yyyy-mm-dd i t-sql?
Det som fungerar är ju att först göra om det till en sträng (som någon sa) och då en s.k. ISO sträng yyyymmdd och sedan via SUBSTRING funktionen klippa och klistra ihop en sträng som ser ut som yyyy-mm-dd....
Är det ingen mer än jag som finner det besynnerligt att det går alldeles utmärkt att mata in ett datum i formatet yyyy-mm-dd men inte formatera ut ett!? Det hade ju varit så smidigt.
Tack för inputenSv: Datumformatering i SQL Server
Jo, det går alldeles utmärkt (se nedan). Men det är som sagt presentationen av den (i det här fallet i en varchar-sträng) som man formatterar. inte datumet som sådant. Datum lagras inte som en sträng typ 2003-01-01 eller 01/01/03, de lagras som två integers (ett för dagar före eller efter grunddatumet 1900-01-01, ett för tid på dagen),
<code>
SELECT CONVERT(varchar(10), GETDATE(), 120) AS ISODATE
</code>
> Är det ingen mer än jag som finner det besynnerligt att det går alldeles utmärkt att mata in ett datum i formatet yyyy-mm-dd men inte formatera ut ett!?
Som sagt så går det ju att formattera det så även i outputten, men anledningen till att det går i input är naturligtvis att SQL Server tolkar din inmatning och sparar datumet som jag beskrivit ovan. Hur det sedan visas är som sagt upp till applikationen som ska presentera det, är det QA i ditt fall så använder den säkert de inställningar som finns på din maskin.Sv: Datumformatering i SQL Server
(Det är för presentation mha klienten i så fall)Sv: Datumformatering i SQL Server
Funktionerna var däremot nyttiga och kan komma till användning i andra sammanhang, tack för tipset.Sv: Datumformatering i SQL Server
Vad märkligt!? När jag testar din sats idag, fungerar den alldeles utmärkt även hos mig, kan svära på att jag testat det tidigare och inte fått samma res, besynnerligt, men det innebär ju bara att jag inte vet så mycket som jag tror... jaja man har lärt sig något nytt iallafall, det var kul.
Tack Christoffer.