[CFM]String opsplitsen.

Pagina: 1
Acties:

  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 13:58
Ik heb ik een variabele een string als deze staan:
2002-04-10 15:09:51

Hoe kan ik nu de datum en de tijd hieruit trekken en deze in 2 apparte strings zetten?

Ik weet dat je met PHP substr() kunt gebruiken om delen van een string te rippen, maar is er voor CFML ook zo'n soortgelijke functie?

Ik heb hier het boek Mastering ColdFusion 5 maar daar heb ik nog niks bruikbaars in gezien so far...

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • mulder
  • Registratie: Augustus 2001
  • Nu online

mulder

ik spuug op het trottoir

Je zou gewoon de help kunnen gebruiken natuurlijk, maar jah!
DateFormat()
TimeFormat()

oogjes open, snaveltjes dicht


Verwijderd

<cfset datum = DateFormat(Now(),"DDD-DD-MM-YYYY")>
<cfset tijd = TimeFormat(Now(),"HH:MM:SS")>

  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 13:58
Nee das niet wat ik bedoel, ik heb een tabel in een database met daarin een colom "DATE"... die kolom bevat en string zoals eerder gepost.

Nu moet ik van ieder record (250k ong) die DATE d'r uitvissen (no problem)... deze DATE dus opsplitsen in het stukje met de datum en het stukje met de tijd... (problem) en de 2 nieuwe strings weer in de tabel proppen (no problem)

ik heb inmiddels zitten spelen met find(), maar die returnt alleen maar 1 of 0.

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • mulder
  • Registratie: Augustus 2001
  • Nu online

mulder

ik spuug op het trottoir

Dus je wilt een datum uit een db halen, in 2 stukken knippen, weer aanelkaar plakken, weer in de db stoppen. Afgezien dat dat een bijzondere zoniet absurde handeling is, staat hier boven de oplossing, zoniet.... re-phrase peeeeelease.

oogjes open, snaveltjes dicht


  • jochemd
  • Registratie: November 2000
  • Laatst online: 31-08 19:19
Nu moet ik van ieder record (250k ong) die DATE d'r uitvissen (no problem)... deze DATE dus opsplitsen in het stukje met de datum en het stukje met de tijd... (problem) en de 2 nieuwe strings weer in de tabel proppen (no problem)
Daar gebruik je toch ColdFusion niet voor hoop ik :? Dat moet je gewoon in de database zelf doen, dan ben je ook af van alle overhead die je krijgt als je alle data eerst naar CF trekt en dan weer terugduwt de db in.

Wat is je DBMS en wat zijn de datatypes van de relevante kolommen?

  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 13:58
Op woensdag 10 april 2002 15:51 schreef Don Facundo het volgende:
Dus je wilt een datum uit een db halen, in 2 stukken knippen, weer aanelkaar plakken, weer in de db stoppen. Afgezien dat dat een bijzondere zoniet absurde handeling is, staat hier boven de oplossing, zoniet.... re-phrase peeeeelease.
hehe... ik heb in de database 2 nieuwe kolommen erbij gezet... datum en tijd

dus ik wil datum/tijd combinatie uitlezen (dat lukt dus wel)
opsplitsen (dat lukt niet)
en daarna de waardes in de nieuwe kolommen doen (dat lukt me ook wel :))

als die allemaal gedaan is: dan mik ik die kolom met de combinatie van beide waardes eruit :)

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 13:58
Op woensdag 10 april 2002 15:55 schreef jochemd het volgende:

[..]

Daar gebruik je toch ColdFusion niet voor hoop ik :? Dat moet je gewoon in de database zelf doen, dan ben je ook af van alle overhead die je krijgt als je alle data eerst naar CF trekt en dan weer terugduwt de db in.

Wat is je DBMS en wat zijn de datatypes van de relevante kolommen?
sql server 7 onder windows2000 server.
"Date" is een datetime
"datum" is een char(12)
"tijd" is een char(8)

edit:
DATE bevat iets als dit: 2002-04-10 15:09:51
daarvan moet dit "2002-04-10" naar de kolom DATUM
en "15:09:51" naar de kolom TIJD

als daar een sql commando voor is... tell me :)

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • mulder
  • Registratie: Augustus 2001
  • Nu online

mulder

ik spuug op het trottoir

Op woensdag 10 april 2002 15:56 schreef Spooksel het volgende:

[..]
als die allemaal gedaan is: dan mik ik die kolom met de combinatie van beide waardes eruit :)
Ook heel speciaal.

Maar goed, dan staat de oplossing er nog steeds....

oogjes open, snaveltjes dicht


  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 13:58
Op woensdag 10 april 2002 16:04 schreef Don Facundo het volgende:

[..]

Ook heel speciaal.

Maar goed, dan staat de oplossing er nog steeds....
die oplossing geeft (als ik mij niet vergis) de huidige datum en tijd, correct?
ik kan niet zomaar een datum uit de tabel gaan vervangen met de datum van vandaag en de tijden van de komende 10 seconden :)

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • mulder
  • Registratie: Augustus 2001
  • Nu online

mulder

ik spuug op het trottoir

Ja DOOOOOOH, je moet natuurlijk wel het veldje uit de db gebruiken:

<cfset datum=DateFormat(qryWhatEver.Datum, "DDD-DD-MM-YYYY")>

Het schaadt echt niet om de F1 toets te gebruiken....

oogjes open, snaveltjes dicht


  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 13:58
* Spooksel knalt zijn kop door de tafel heen...

damn wat ben ik toch weer lekker verkeerd bezig vandaag :)

sorry voor het verspillen van je tijd... :P
(het werkt!!!)

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


Verwijderd

OMG :D rofl..

  • jochemd
  • Registratie: November 2000
  • Laatst online: 31-08 19:19
sql server 7 onder windows2000 server.
"Date" is een datetime
"datum" is een char(12)
"tijd" is een char(8)
WTF. Date is een reserved word volgens zowel SQL92 als SQL99, dat ga je toch niet in je tabeldefinitie stoppen |:(
DATE bevat iets als dit: 2002-04-10 15:09:51
daarvan moet dit "2002-04-10" naar de kolom DATUM
en "15:09:51" naar de kolom TIJD
Ik ben niet zo thuis in de functies die MS SQL Server standaard aan boord heeft, maar het zal wel zoiets zijn als:
code:
1
2
3
4
UPDATE tabel
SET
    datum = To_String("Date",'yyyy-mm-dd'),
    tijd  = To_String("Date", 'HH:nn:ss')

Als je de functie die MS SQL heeft om een datum een bepaald formaat te geven even opzoekt in je documentatie ben je er zo.

Verwijderd

Als je overigens reserved column names in je queries wilt gebruiken moet je deze enqouten :)

SELECT naam, achternaam, 'date', leeftijd
FROM ... bla

  • jochemd
  • Registratie: November 2000
  • Laatst online: 31-08 19:19
Op maandag 15 april 2002 12:17 schreef Gordijnstok het volgende:
Als je overigens reserved column names in je queries wilt gebruiken moet je deze enqouten :)

SELECT naam, achternaam, 'date', leeftijd
FROM ... bla
Maar de SQL standaard is dan wel om er dubbele quotes " voor te gebruiken. MS heeft (natuurlijk) weer een afwijkende interpretatie dus daar moet je rechte haken [] gebruiken.
De door jou geposte code zal als derde kolom van de query slechts de string "date" teruggeven in plaats van de inhoud van de kolom "date".
Pagina: 1