[Java] Date object naar sql server

Pagina: 1
Acties:

  • bibawa
  • Registratie: Augustus 2005
  • Laatst online: 13-04-2008
Ik moet in java een query schrijven die adhv een datum een aantal records teruggeeft, de query is als volgt:

SELECT * FROM tabel WHERE datum = dat

Waarbij dat een java Date object is dat je meegeeft aan de functie.
Als ik deze query uitvoer dan krijg ik foutmelden, als ik de query afdruk op de commandline dan krijg ik een zeer rare datum in de query.

Vorige week heb ik er al met enkele collega's achter zitten zoeken maar we zijn gewoon tot het besluit gekomen dat de Java Date niet compatibel is met de sql server Date..

Maar toch zouden we hier graag gebruik van maken, hoe kunnen we alsnog rechtstreeks java Date objecten gebruiken in onze querys?

  • vandijk
  • Registratie: Oktober 1999
  • Laatst online: 22-11 22:53

Canon cameras en lenzen. Elinchrom flitsers, Lowepro en Pelican tassen/koffers. Polestar 2


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 20:19

Gerco

Professional Newbie

Ik vermoed dat vandijk gelijk heeft en je string concatenation gebruikt. Met dates is dat vragen om problemen (met andere dingen ook, maar dan werkt het meestal nog wel). Dit is nu typisch zo'n geval waarin het handig zou zijn om de volgende dingen te posten:

1. Relevante code, zoals een paar regels van de functie waarmee je de query uitvoert.
2. De foutmelding die je noemt. Bij gebrek aan glazen bol is dat soms wel makkelijk.
3. De query die je nu krijgt. "Rare datum in de query" is nu niet bepaald de meest duidelijke omschrijving van het probleem.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • DoDo
  • Registratie: Juli 2001
  • Laatst online: 21:38
Kun je niet date.getDate() gebruiken?

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:51

Robtimus

me Robtimus no like you

bibawa schreef op zondag 13 mei 2007 @ 14:07:
Vorige week heb ik er al met enkele collega's achter zitten zoeken maar we zijn gewoon tot het besluit gekomen dat de Java Date niet compatibel is met de sql server Date..
Dat is maar half waar.

java.sql.Date extends java.util.Date, dus als je ergens een java.util.Date verwacht kun je er ook een java.sql.Date (en ook java.sql.Time en java.sql.Timestamp) aan meegeven. Andersom lukt je alleen met een omweg:
Java:
1
2
3
public java.util.Date convertDate(java.sql.Date date) {
    return new java.util.Date(date.getTime());
}

Met java.sql.Time en java.sql.Timestamp kun je hetzelfde doen.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:51

Robtimus

me Robtimus no like you

DoDo schreef op zondag 13 mei 2007 @ 15:25:
Kun je niet date.getDate() gebruiken?
Dat geeft je alleen de dag zelf terug, niet de hele datum. Dus voor 13-11-2005 geeft die alleen 13 terug. Bovendien is hij deprecated; je moet java.util.Calendar gebruiken voor dit soort zaken.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

IceManX schreef op zondag 13 mei 2007 @ 15:44:
[...]
...
java.sql.Date extends java.util.Date
.....
Java:
1
2
3
public java.util.Date convertDate(java.sql.Date date) {
    return new java.util.Date(date.getTime());
}

....
ehm, dit compileert net zo goed:

Java:
1
2
3
public java.util.Date convertDate(java.sql.Date date) {
    return date;
}


volgens mij bedoelde je het omgekeerde?

Java:
1
2
3
public java.sql.Date convertDate(java.util.Date date) {
    return new java.sql.Date(date.getTime());
}

?

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 19:51

Robtimus

me Robtimus no like you

Eh juist |:(

Sorry, ik zat blijkbaar even te slapen.

More than meets the eye
There is no I in TEAM... but there is ME
system specs

Pagina: 1