Hjælp til at ændre dato formatet på en SQL server.
Jeg vil høre om der er nogle der step by step kan fortælle mig hvordan jeg skifter datoformatet på vores SQL server. Det står pt default til UK formatet, men skal ændres til det europæiske.
IMHO, så skal du lade SQL Server om at styre datoformatet for sig selv. Klientprogrammerne skal sørge for at formattere datoen til visning/indtastning, men skal kommunikere datoen i ISO-format til/fra SQL Serveren.
Internt er datoer gemt som et kommatal, hvor heltalsdelen angiver datoen, og fraktions-delen angiver tidspunktet på dagen.
Fordelen med at bruge ISO-formatet (yyyymmdd) til at kommunikere datoer til/fra SQL Serveren er, at SQL Serveren altid genkender det format uanset hvilken datoformat, den er sat til at vise.
JEg tror at jeg måske ikke har forklaret det helt præcis - Jeg mener bare hvordan sætter man op at denne SQL server skal indeholder de europæiske tegn/ sprog/ datoer med videre..
Det jeg tror Benny siger er at datoen er altid den samme på serveren. Serverside er det ren teknik, hvordan data gemmes, og det skal man ikke bekymre sig om. Derimod er det muligt at formattere de data du trækker ud af databasen, således at de for brugeren der ser dem, eller skal redigere i dem ser rigtige ud. Når så data gemmes igen på serveren, skal de gemmes i ISO formatet mmddyyyy.
Hvis man konverterer data til europæisk format, vil formatet blive DD/mmm/yyyy f.eks. 01 apr 2005
hvis du ønsker formatet som værende ddmmyyyy bliver du nød til at lave noget sql som kan trække de rigtige data, og konvertere dem til en streng. Jeg har lavet et eksempel på hvordan man kan trække dagens dato i det rigtige format, men du må selv lave det om så det passer på jeres tabeller, og træker data derfra. ******* declare @day char(2) declare @month char(2) declare @year char(4) if (select(day(getdate()))) < 10 begin select @day = '0'+cast( day(getdate()) as char(1)) end else begin select @day = cast( day(getdate()) as char(2)) end if(select(month(getdate())))<10 begin select @month = '0'+cast( month(getdate()) as char(1)) end else begin select @month = cast( month(getdate()) as char(2)) end
select @day+' '+@month+' '+cast( year(getdate()) as varchar(4)) as date *******
Til at hente data på den rigtige måde kan du benyttet benyt
Alle nye databaser vil være en kopi af databasen "model", så hvis du ændrer Collation på den vil det betyde at alle nye databaser afspejler det:
ALTER DATABASE model COLLATE <collation_name>
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.