|
| 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
| |
|
|