/ 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
Problemer med Between 31-01-2002 AND 31-01~
Fra : oz


Dato : 31-01-02 15:07

Hej NG

Jeg sidder med en SQL 7 DB og vil lave en forespørgsel der henter et antal
poster i min DB, der er lavet mellem to datoer....
I min tabel har jeg blandt andet et datofelt, der er DateTime og formatet
ser ud til at være dd-mm-yyyy, når jeg tilføjer nye poster...

Hvis jeg forsøger at fyre en SP af får jeg denne fejl, date out of range....
den forventer åbenbart formatet "mm-dd-yyyy", men hvordan kan det være? Når
jeg indsætter poster i min DB indsætter den med dd-mm-yyyy, men åbenbart
ikke når jeg skal søge...

Med andre ord, når jeg i Query analyzer laver det her skriver den:

EXEC DateTest @DateStart ='31-01-2000', @DateEnd = '31-01-2001'
Denne fejl:
The conversion of a char data type to a datetime data type resulted in an
out-of-range datetime value.

Hvorimod
EXEC DateTest @DateStart ='01-31-2000', @DateEnd = '01-31-2001'
ikke giver fejl....

Jeg har forsøgt at bruge convert men uden held...

Er der mon nogen der kan hjælpe mig videre, jeg er lidt forvirret?

På Forhånd tak

Oz



 
 
Nis Jorgensen (31-01-2002)
Kommentar
Fra : Nis Jorgensen


Dato : 31-01-02 16:03

On Thu, 31 Jan 2002 15:06:58 +0100, "oz" <gonzo@strike-team.com>
wrote:

>Jeg sidder med en SQL 7 DB og vil lave en forespørgsel der henter et antal
>poster i min DB, der er lavet mellem to datoer....
>I min tabel har jeg blandt andet et datofelt, der er DateTime og formatet
>ser ud til at være dd-mm-yyyy, når jeg tilføjer nye poster...

Der maa du vist vaere mere praecis ... hvordan tilfoejer du posterne?
Kan det vaere det interface du goer det igennem som staar for
konverteringen

>Hvis jeg forsøger at fyre en SP af får jeg denne fejl, date out of range....
>den forventer åbenbart formatet "mm-dd-yyyy", men hvordan kan det være? Når
>jeg indsætter poster i min DB indsætter den med dd-mm-yyyy, men åbenbart
>ikke når jeg skal søge...

Jeg vil tro at T-SQL altid vil have datoerne i dette format - det vil
Jet SQL i hvert fald (omend jeg normalt bruger #mm/dd/yyyy#)

Hvad et "tilfaeldigt" brugerinterfjaes vil have er jo en anden sag.

--
Nis Jorgensen
Amsterdam

Please include only relevant quotes, and reply below the quoted text. Thanks

oz (01-02-2002)
Kommentar
Fra : oz


Dato : 01-02-02 11:45


"Nis Jorgensen" <nis@dkik.dk> skrev:

> Der maa du vist vaere mere praecis ... hvordan tilfoejer du posterne?
> Kan det vaere det interface du goer det igennem som staar for
> konverteringen

Ok, her kommer det så:

TABEL NEWS

NEW_ID | IDENTITY
NEWS_DATE | DATETIME | GETDATE()
NEWS_HEAD | VARCHAR (50)
NEWS_BODY | VARCHAR (1000)



CREATE PROCEDURE NEWS_INSERT
@NEWS_ID int,
@NEWS_HEAD varchar(50),
@NEWS_BODY (450),

AS

INSERT INTO NEWS
(NEWS_ID, NEWS_HEAD, NEWS_BODY)

VALUES
(@NEWS_ID, @NEWS_HEAD, @NEWS_BODY)

NEWS_DATE insætte automatisk med GETDATE() og har formatet når jeg ser den i
TABLE NEWS dd-mm-yyyy
Når jeg så via ASP kalder min SP som skal vise NEWS i et bestemt intervall
så er det den siger at date er out-of-range fordi den forventer åbenbart
formatet mm-dd-yyyyy



CREATE PROCEDURE NEWS_RANGE_SELECT

@DateStart DateTime, -- Får input fra min ASP side i formatet 'dd-mm-yyyy'
@DateEnd DateTime -- Får input fra min ASP side i formatet 'dd-mm-yyyy'

AS

SELECT * FROM NEWS
WHERE NEWS.NEWS_DATE BETWEEN @DateStrart AND @DateEND

Jeg har forsøgt at bruge @DateStart varchar(10) og @DateEnd varchar(10) men
det giver bare samme problem.....

Hvad er det jeg gør galt?

Håber det forklarede det lidt bedre...

Med venlig hilsen

Oz



Nis Jorgensen (01-02-2002)
Kommentar
Fra : Nis Jorgensen


Dato : 01-02-02 14:58

On Fri, 1 Feb 2002 11:45:27 +0100, "oz" <gonzo@strike-team.com> wrote:

>
>"Nis Jorgensen" <nis@dkik.dk> skrev:
>
>> Der maa du vist vaere mere praecis ... hvordan tilfoejer du posterne?
>> Kan det vaere det interface du goer det igennem som staar for
>> konverteringen
<>
>NEWS_DATE insætte automatisk med GETDATE() og har formatet når jeg ser den i
>TABLE NEWS dd-mm-yyyy

Naar du "ser posten i tabellen" ser du en REPRAESENTATION af de data
der er gemt i feltet. Denne repraesentation er aabenbart ikke den
samme som du skal bruge naar du vil overfoere data til en stored
procedure. Hvorfor er dette et problem for dig?

>CREATE PROCEDURE NEWS_RANGE_SELECT
>
>@DateStart DateTime, -- Får input fra min ASP side i formatet 'dd-mm-yyyy'
>@DateEnd DateTime -- Får input fra min ASP side i formatet 'dd-mm-yyyy'

Hvorfor faar du ikke bare din ASP-side til at overfoere i formattet
'mm-dd-yyyy' ? Eller som Date i stedet for som tekst? Jeg kender ikke
saa meget til ASP ...

--
Nis Jorgensen
Amsterdam

Please include only relevant quotes, and reply below the quoted text. Thanks

oz (01-02-2002)
Kommentar
Fra : oz


Dato : 01-02-02 16:17


"Nis Jorgensen" <nis@dkik.dk> skrev:


> Naar du "ser posten i tabellen" ser du en REPRAESENTATION af de data
> der er gemt i feltet. Denne repraesentation er aabenbart ikke den
> samme som du skal bruge naar du vil overfoere data til en stored
> procedure. Hvorfor er dette et problem for dig?

Det er jo netop det der undrer mig.... Jeg kan ikke helt forstå hvorfor der
er forskel på den visuelle præsentation og så de data der skal puttes ind i
stedet....
Men sådanne er det åbenbart og det må jeg så leve med....

> Hvorfor faar du ikke bare din ASP-side til at overfoere i formattet
> 'mm-dd-yyyy' ? Eller som Date i stedet for som tekst? Jeg kender ikke
> saa meget til ASP ...

Det er vel løsningen, men det undrer mig nu stadigt at det vises som
dd-mm-yyyy og skal sendes op imod min SP som mm-dd-yyyy...

Men tak for hjælpen...

Hilsner

Oz



Nis Jorgensen (01-02-2002)
Kommentar
Fra : Nis Jorgensen


Dato : 01-02-02 17:28

On Fri, 1 Feb 2002 16:16:30 +0100, "oz" <gonzo@strike-team.com> wrote:

>
>"Nis Jorgensen" <nis@dkik.dk> skrev:
>
>
>> Naar du "ser posten i tabellen" ser du en REPRAESENTATION af de data
>> der er gemt i feltet. Denne repraesentation er aabenbart ikke den
>> samme som du skal bruge naar du vil overfoere data til en stored
>> procedure. Hvorfor er dette et problem for dig?
>
>Det er jo netop det der undrer mig.... Jeg kan ikke helt forstå hvorfor der
>er forskel på den visuelle præsentation og så de data der skal puttes ind i
>stedet....
>Men sådanne er det åbenbart og det må jeg så leve med....
>
>> Hvorfor faar du ikke bare din ASP-side til at overfoere i formattet
>> 'mm-dd-yyyy' ? Eller som Date i stedet for som tekst? Jeg kender ikke
>> saa meget til ASP ...
>
>Det er vel løsningen, men det undrer mig nu stadigt at det vises som
>dd-mm-yyyy og skal sendes op imod min SP som mm-dd-yyyy...

Her er et forsoeg paa en forklaring:

Det er meget belejligt at folk paa deres skaerm ser en repraesentation
af datoen, som svarer til hvad de er vant til. Derfor vises datoer
normalt altid i overenstemmelse med brugerens Regional Settings e.l.
Naar det derimod drejer sig om programkode er det mest praktiske at
man fastlaegger EEN universel maade at angive datoer paa, saaledes at
programkode net kan udveksles mellem folk der ellers bruger
forskellige datoformater.

--
Nis Jorgensen
Amsterdam

Please include only relevant quotes, and reply below the quoted text. Thanks

oz (01-02-2002)
Kommentar
Fra : oz


Dato : 01-02-02 18:00


"Nis Jorgensen" <nis@dkik.dk> skrev:

> Her er et forsoeg paa en forklaring:
>
> Det er meget belejligt at folk paa deres skaerm ser en repraesentation
> af datoen, som svarer til hvad de er vant til. Derfor vises datoer
> normalt altid i overenstemmelse med brugerens Regional Settings e.l.
> Naar det derimod drejer sig om programkode er det mest praktiske at
> man fastlaegger EEN universel maade at angive datoer paa, saaledes at
> programkode net kan udveksles mellem folk der ellers bruger
> forskellige datoformater.

Jammen der kan du da have ret må man sige.

Men tak for dit input =)

oz



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste