Sql String

Tags:    asp

Hejsa..

Jeg har et problem med min sql string:

NewsDato = rs("Dato")

strSQL = "SELECT * From Nyheder WHERE Dato = " & NewsDato & " ORDER By Dato Desc"
Set newsrs = Con.Execute(strSQL)

Den henter først en dato fra en anden sql string, som har inputmasken: 00-00-0000;0;_ i databasen!!
Efter min egen mening skulle den jo så gerne finde alle de nyheder hvor datoen fra den forrige sql string er lig den for nyheden!!


Måske er det mig der tager fejl?

Hvis det er at du kender et lidt nemmere måde til kun at få nyheder ud for hver deres dato, så er det også velkommen :)


Det skal lige siges at hvis jeg opskriver datoen på talform, så virker det som jeg gerne vil ha det ;) Men det kan jo ikke være rigtigt at må skal gøre det sårn?![Redigeret d. 18/05-03 12:46:11 af Martin]



7 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato


For det første vil jeg råde dig til at bruge et dato format i din database, så har du flere muligheder med sql, også i fremtiden, hvis du skal lave noget fancy som "nyeste nyheder" osv.

For det første skal du sikre dig at den dato du har med fra en tidligere side, reelt også indeholder en dato (det kan jeg forstå på dit sidste indlæg at den gør). Dernæst skal du sikre dig at dine dato formater er NØJAGTIGT DE SAMME, det vil sige at gemmer du millisekunder i databasen så skal din newsdato også være med millisekunder. Samt hvis den dato du sender over fra forrige sider bruger bindestreger som skilletegn så skal du også bruge det i databasen. I princippet skal det være således at hvis du skriver de to datoer under hinanden så er der OVERHOVEDET INGEN FORSKEL. Prøv så også lige at skifte dine anførselstegn ud med apostroffer (skift dobelt-plinger ud med enkelt-plinger) således:
Fold kodeboks ind/udKode 


(¯`·._.·[Brian Hvarregaard]·._.·´¯)



Jeg har selv haft et problem der minder meget om det du nævner her, jeg selv køre en mySQL server, og af en eller anden grund syndes den det er sjovt at køre i et virkeligt mærkeligt dato format. måden jeg omgår det på er ved at ændre Session.LCID til 3084, på den måde blir datoerne i samme format som mySQL bruger..

når du henter en dato ned i en variable fra sqlservern, blir den automatisk sat over til den standart som serveren køre, i mit eksempel køre min server med dansk dato format, som har LCID nr 1030

Fold kodeboks ind/udKode 


Jeg er bestemt ikke sikker på dette er den mest optimale måde at gøre det på, men det virker, i mit tilfælde. :D

/Koldy



Hejsa..

Jeg har et problem med min sql string:

NewsDato = rs("Dato")

strSQL = "SELECT * From Nyheder WHERE Dato = " & NewsDato & " ORDER By Dato Desc"
Set newsrs = Con.Execute(strSQL)

Den henter først en dato fra en anden sql string, som har inputmasken: 00-00-0000;0;_ i databasen!!
Efter min egen mening skulle den jo så gerne finde alle de nyheder hvor datoen fra den forrige sql string er lig den for nyheden!!


Måske er det mig der tager fejl?

Hvis det er at du kender et lidt nemmere måde til kun at få nyheder ud for hver deres dato, så er det også velkommen :)


Det skal lige siges at hvis jeg opskriver datoen på talform, så virker det som jeg gerne vil ha det ;) Men det kan jo ikke være rigtigt at må skal gøre det sårn?![Redigeret d. 18/05-03 12:46:11 af Martin]


Prøv at udskrive NewsDato på skærmen inden du udskriver nyheder. Det er en god ting når
man skriver et script

MH.

The-Freak

Livet er for kort til at kede sig.




Prøv at udskrive NewsDato på skærmen inden du udskriver nyheder. Det er en god ting når
man skriver et script

MH.

The-Freak

Livet er for kort til at kede sig.



Det gjorde jeg allerede inden jeg postede indlæget :P





For det første vil jeg råde dig til at bruge et dato format i din database, så har du flere muligheder med sql, også i fremtiden, hvis du skal lave noget fancy som "nyeste nyheder" osv.

For det første skal du sikre dig at den dato du har med fra en tidligere side, reelt også indeholder en dato (det kan jeg forstå på dit sidste indlæg at den gør). Dernæst skal du sikre dig at dine dato formater er NØJAGTIGT DE SAMME, det vil sige at gemmer du millisekunder i databasen så skal din newsdato også være med millisekunder. Samt hvis den dato du sender over fra forrige sider bruger bindestreger som skilletegn så skal du også bruge det i databasen. I princippet skal det være således at hvis du skriver de to datoer under hinanden så er der OVERHOVEDET INGEN FORSKEL. Prøv så også lige at skifte dine anførselstegn ud med apostroffer (skift dobelt-plinger ud med enkelt-plinger) således:
Fold kodeboks ind/udKode 


(¯`·._.·[Brian Hvarregaard]·._.·´¯)



Nu er det jo sårn at den talværdi jeg får ud faktisk er en anden form at opskrive datoen på!

Men jeg kunne godt tænke mig at vide hvorfor at hvis dette:
Fold kodeboks ind/udKode 

Giver værdien True, hvorfor den så ikke sorter de datoer ud!

Leder stadig efter et svar!
Men tak alligevel for din hjælp brian!

Mvh
Martin N



De du reelt får ud, er det monstro ikke bare true fordi dit resultatsæt ikke er tomt, dvs det indeholder "et tomt resultatsæt". Er dit dato format det samme i databasen som det format du spørger med? Jeg tror det er der fejlen ligger, jeg har noget ASP kode et eller andet sted, kigger lige på det i morgen. Hvis ikke du får det til at virke, så giv lige et eksempel på dine dato formater, både datatypen samt formatet i databasen og så værdien af NewsDato.

(¯`·._.·[Brian Hvarregaard]·._.·´¯)



De du reelt får ud, er det monstro ikke bare true fordi dit resultatsæt ikke er tomt, dvs det indeholder "et tomt resultatsæt". Er dit dato format det samme i databasen som det format du spørger med? Jeg tror det er der fejlen ligger, jeg har noget ASP kode et eller andet sted, kigger lige på det i morgen. Hvis ikke du får det til at virke, så giv lige et eksempel på dine dato formater, både datatypen samt formatet i databasen og så værdien af NewsDato.

(¯`·._.·[Brian Hvarregaard]·._.·´¯)


Værdien af NewsDato:
Fold kodeboks ind/udKode 


I databasen har datoen formatet: Kort datoformat

Men uanset hvordan den vendes og drejes kan de jo umuligt være forskellige eftersom NewsDato værdien jo er hentet fra den samme tabel som den dato der skal sortes efter...
Det er et og samme værdi jo!!

Men prøv at komme med det du har :) Vil gerne lige se det!



t