webForumDet fria alternativet

Datumproblem - inga träffar - klockslag?

ASP

8 svar · 473 visningar · startad av anhel96

Medlem sedan dec. 2000124 inlägg
Frågan#1

Jag har ett problem med att returnera ett datum som ska användas i en ny fråga.
Jag listar alla månadens leveranser i en tabell grupperad per datum.
Denna tabell är klickbar på datum då man får upp alla detaljer om leveranserna ett visst datum.
Datumet lagras i variabeln deliver_date.
Skriver jag ut denna med write så är den i formatet YYYY-MM-DD, t.ex. 2002-07-11.
Om jag däremot använder denna variabel i den nya frågan så får jag inga träffar.
DELIVERY_DATE = '" & Request("delivery_date") & "'

Har även testat SQLn i MS Query, genom att mata in t.ex. DELIVERY_DATE = '2002-07-12.
Då får jag upp felmeddelandet "ORA-01861: literal does not match format string".
Däremot så fungerar det med
TO_CHAR(DELIVERY_DATE,'IYYY"-"MM"-"DD') = '2002-07-12'

Detta tyder väl på att det har att göra med klockslaget i databasen som är en Oracle-databas?

Jag kan däremot inte få detta att fungera i min asp-kod.

Vad är motsvarande kod för asp eller vb?

Medlem sedan juni 200277 inlägg
#2

Pröva att skriva in datumet med månaden i bokstäver.
12 august 2002.
Då fattar den direkt vad som är dag, månad och år. Då får du reda på om dat är nåt med datumformatet iaf...

Medlem sedan dec. 2000124 inlägg
#3

Det fungerar!
POL.VALID_PLANNED_DELIVERY_DATE = '12 july 2002'
ger mig de rader jag behöver i MS Query.
Men hur får jag nu mitt datum i variabeln till detta format istället när jag ska använda det i den nya frågan i asp-koden?

Medlem sedan nov. 20017 144 inlägg
#4

Kolla här:
http://www.devguru.com/Technologies/vbscript/quickref/formatdatetime.html

Hoppas att du hittar det du söker!

Medlem sedan dec. 2000124 inlägg
#5

Den sidan var bra och till viss hjälp.
Men, jag får inte ihop det!

Genom att använda FormatDateTime("MinDatum", 1) får jag ut t.ex. den 12 juli 2002 (dvs på svenska).

Men, då databasen har engelsk konfigurering förstår den inte min nya datum.

Jag har provat med att sätta session.lcid=1033 (dvs engelskt), men det hjälpte inte.
Som jag nämnde ovan förstår den "12 july 2002", dock inte "July 12, 2002" som det blir med denna lcid.

Vad ska jag göra för att få rätt på det?

Snart desperat! :-)

Medlem sedan mars 2001309 inlägg
#6

Då kan du ju alltid göra en split på strängen och bygga om den som du vill ha den !

 DateArry = split(FormatDateTime("MinDatum", 1)," ")

rattdatumform =  DateArry(2) & " " & DateArry(1) &  " " & DateArry(3)

Det är inte så snyggt men det funkar ju !

Medlem sedan dec. 2000124 inlägg
#7

Fungerar NÄSTAN. Måste tvätta bort ett kommatecken, vet dock inte hur.

Det går alldeles utmärkt att kasta om ordningen, men pga att det i det engelska datumet finns ett kommatecken så går det inte.

När jag gör enligt senaste förslaget ovan så får jag datumet på format
14, July 2002
Detta förstår inte databasen.

Om jag däremot hårdkodar in
14 July 2002
så fungerar det att hämta data.

Med andra ord, hur får jag bort kommatecknet?

Medlem sedan juni 200032 967 inlägg
#8

strDatum = replace(strDatum, ",", "")

Mvh,

Medlem sedan dec. 2000124 inlägg
#9

Yeeha, nu fungerar allt som det ska.
Lite omständigt kanske, men dock.
Så här ser slutresultatet ut. Någon som har några förbättringsförslag så är det välkommet.

' Ändra till engelskt format tillfälligt
session.lcid=1033

DateArry = split(FormatDateTime(Request("delivery_date"), 1)," ")

delivery_date = DateArry(2) & " " & DateArry(1) & " " & DateArry(3)

delivery_date = replace(delivery_date, ",", "")

'urklipp ur WHERE-satsen
SQL = SQL & "A.DELIVERY_DATE = '" & delivery_date & "' " & chr(13)

' Återställ till svenskt format efter att alla SQL exekverat
session.lcid=1053

259 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)