/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[MSSQL] IsDate og datoformater
Fra : Jens Gyldenkærne Cla~


Dato : 18-10-07 11:44

Hej gruppe. Jeg har lavet en funktion der kan omsætte en tekstdato
til en reel datoværdi, men har fået lidt bøvl med håndteringen af
gale værdier.

Jeg vil gerne kunne tjekke om input kan tolkes korrekt som en dato
og så smide enten null eller en pseudodato ud i stedet for at lade
funktionen fejle hvis input ikke kan oversættes korrekt.

Problemet er at IsDate afhænger af det bagvedliggende datoformat.
Jeg havde forventet at formatet yyyy-mm-dd ville være "sikkert" at
bruge, uanset hvilket datoformat der var valgt på serveren, men
sådan spiller klaveret ikke.

Isdate('2007-03-23') returnerer 0 (falsk), på trods af at der mig
bekendt ikke findes nogen datoformater baseret på rækkefølgen ydm.

Hvis jeg fjerner bindestregerne, virker det o.k. - men da mine
inputværdier undervejs er håndteret som heltal, skal jeg så selv
sørge for 0-padding hvis det skal gå op. Jeg kan også formatere
datoen efter ISO8601 (yyyy-mm-ddThh:mi:ss), men her er problemet
igen at jeg skal 0-padde dagen og måneden for at undgå fejl.

Er der nogen fornuftig måde at håndtere datoer på uden at bekymre
sig om det bagvedliggende datoformat?


--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

 
 
Peter Lykkegaard (20-10-2007)
Kommentar
Fra : Peter Lykkegaard


Dato : 20-10-07 08:29

Jens Gyldenkærne Clausen wrote:

> Hej gruppe. Jeg har lavet en funktion der kan omsætte en tekstdato
> til en reel datoværdi, men har fået lidt bøvl med håndteringen af
> gale værdier.
>
Måske denne kunne være til inspiration?
http://www.databasejournal.com/features/mssql/article.php/2191631

En mulighed er at sende cultural information til din sp og så bruge SET
DATEFORMAT for at afgøre hvordan datoen skal tolkes

- Peter

--
Hi! I'm a .signature *virus*!
Copy me into your ~/.signature to help me spread!



Jens Gyldenkærne Cla~ (20-10-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-10-07 14:43

Peter Lykkegaard skrev:

> Måske denne kunne være til inspiration?
> http://www.databasejournal.com/features/mssql/article.php/21916
> 31

Tak for link. Jeg kan dog ikke umiddelbart finde noget brugbart.


> En mulighed er at sende cultural information til din sp og så
> bruge SET DATEFORMAT for at afgøre hvordan datoen skal tolkes

Det bliver nok også løsningen her og nu. Jeg var i tvivl om hvad
scope for en SET DATEFORMAT ville være, men det ser ud til at det
alene rammer den aktuelle forbindelse.


--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

Peter Lykkegaard (20-10-2007)
Kommentar
Fra : Peter Lykkegaard


Dato : 20-10-07 17:23

Jens Gyldenkærne Clausen wrote:
>
> Tak for link. Jeg kan dog ikke umiddelbart finde noget brugbart.

SET DATEFORMAT er forklaret :)

- Peter

--
Hi! I'm a .signature *virus*!
Copy me into your ~/.signature to help me spread!



Jens Gyldenkærne Cla~ (20-10-2007)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 20-10-07 23:53

Peter Lykkegaard skrev:

> Jens Gyldenkærne Clausen wrote:
>>
>> Tak for link. Jeg kan dog ikke umiddelbart finde noget brugbart.
>
> SET DATEFORMAT er forklaret :)

Den kendte jeg i forvejen - manglede bare en oplysning om scope
(som jeg endte med at teste mig frem til da jeg ikke kunne finde
det på nettet).
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste