Avatar billede bol Nybegynder
19. april 2005 - 13:23 Der er 5 kommentarer

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.

Fra - mmddyyyy

Til - ddmmyyyy

Håber der er nogen der kan hjælpe.
Avatar billede bennytordrup Nybegynder
19. april 2005 - 13:28 #1
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.
Avatar billede bol Nybegynder
19. april 2005 - 13:35 #2
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..

Bitten;-)
Avatar billede herman01753 Nybegynder
20. april 2005 - 13:42 #3
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
Avatar billede herman01753 Nybegynder
20. april 2005 - 13:49 #4
glemte lige at svare
Avatar billede ldanielsen Nybegynder
21. april 2005 - 10:32 #5
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>
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester