PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SQL Timestamps?


zeckensack
2003-08-02, 21:29:45
Kann mit jemand sagen, wie ich einen SQL-Timestamp in ein reales Datum + Zeit umwandeln kann?

Wie sind die formatiert, etc.

Nein, ist nicht für mich :D

Demirug
2003-08-02, 21:30:31
Original geschrieben von zeckensack
Kann mit jemand sagen, wie ich einen SQL-Timestamp in ein reales Datum + Zeit umwandeln kann?

Wie sind die formatiert, etc.

Nein, ist nicht für mich :D

Beim auslesen aus der Datenbank?

zeckensack
2003-08-02, 21:35:26
Original geschrieben von Demirug
Beim auslesen aus der Datenbank? Wäre nicht schlecht.
Generelle Format-Information wäre aber auch nicht verkehrt :)

PS: Die Frage kam eigentlich im Mod-Forum auf :naughty:

Exxtreme
2003-08-02, 23:00:11
Ich hätte da eine Lösung, siehe Mod-Forum. :)

grakaman
2003-08-02, 23:16:26
Am besten du konvertierst den Timestamp schon beim Select Statement. Z.B.: Select CAST(Spalte As smalldatetime) as myDate from Tabelle ...

MfG

apollo
2003-08-02, 23:36:10
Format ist ziemlich einfach:
Sekunden seit dem 1.1.1970 00:00:00 Uhr (müsste das korrekte Datum sein, wenn ich mich jetzt nicht komplett vertue).
Ist das gleiche wie die Unix-Timestamps.

Exxtreme
2003-08-02, 23:46:25
Original geschrieben von apollo
Ist das gleiche wie die Unix-Timestamps.
Laaalalalaaa...

http://exxtreme78.bei.t-online.de/TimeStamp2DateTime.exe

grakaman
2003-08-03, 00:00:28
Ich glaube nicht, dass das SQL Standard ist. Kann sich ja nur wieder um irgend einen propritären Schrott von MySql handeln.

Exxtreme
2003-08-03, 00:06:32
Original geschrieben von grakaman
Ich glaube nicht, dass das SQL Standard ist. Kann sich ja nur wieder um irgend einen propritären Schrott von MySql handeln.
Nö, es sind die normalen Unix-Timestamps. Und die sind schon seit Jahrzehnten bekannt. :)

Also nix propritär. Deswegen konnte ich das ohne Probleme in ein normales Datum umwandeln.

grakaman
2003-08-03, 00:08:17
Unix Timestamp, ja. Mir wäre aber neu, dass das als Standard bei Datentypen für SQL wäre. SQL92 und T-SQL sieht das jedenfalls nicht vor.

mapel110
2008-04-02, 13:34:06
sry4buddeling, aber dafür wollt ich keinen neuen Thread...

Wie muss eine SQL-Anweisung lauten, mit der ich das älteste Datum rausfinde?

Ist das einfach .... ORDER BY date ASC .... und dann halt den ersten Eintrag des Arrays nehmen?
Oder gibts dafür was komfortableres? =)

/edit
Da muss es was besseres geben. Wenn ich diese Idee umsetze und das bei 2Mio Einträgen in der Datenbank, lädt er sich ja tot.
Oder sollte ich dafür eine Extra-Tabelle anlegen?! Eine Sicht?!

daflow
2008-04-02, 13:44:18
sry4buddeling, aber dafür wollt ich keinen neuen Thread...

Wie muss eine SQL-Anweisung lauten, mit der ich das älteste Datum rausfinde?

Ist das einfach .... ORDER BY date ASC .... und dann halt den ersten Eintrag des Arrays nehmen?
Oder gibts dafür was komfortableres? =)

/edit
Da muss es was besseres geben. Wenn ich diese Idee umsetze und das bei 2Mio Einträgen in der Datenbank, lädt er sich ja tot.
Oder sollte ich dafür eine Extra-Tabelle anlegen?! Eine Sicht?!

Du willst ja nicht alle Datensätze geordnet haben sondern nur den maximal bzw. minimalen Wert...;)
Probiers mal mit select max/min(Spaltenname) from Tabellenname

mapel110
2008-04-02, 14:07:05
Probiers mal mit select max/min(Spaltenname) from Tabellenname
Aber klar doch. Funzt wie ich es will und das eigentliche Threadthema hier kann ich jetzt auch gut brauchen. ^^

/edit
btw was macht ihr, wenn die Daten inkonsistent sind? z.B. mal heißt es "Büger", mal "Bürger"...
Tretet ihr dann die Leute in den Arsch oder müsst ihr drumherumbasteln?

mapel110
2008-04-02, 15:27:16
Nächstes Problem:

Jetzt will ich überprüfen, ob der Inhalt eines Array-Elements mit einem Element der Datenbank übereinstimmt.
Ist bissl kompliziert. Jedenfalls ungefähr so...

Select * From Test where Rufnr = ArrayRufnrn()

Oder sollte ich da wirklich so viele SQL-Anweisungen starten wie ich Rufnummern habe in dem zu vergleichenden Array?
Also quasi

while arrayRufnrn(i) != EOF
$result = mssql_query("select * from Test where Rufnr = ArrayRufnrn(i)");
...


/edit
Muss ich dafür etwa extra eine Tabelle in der Datenbank mit den zu suchenden Rufnummerrn anlegen? ;(

Hucke
2008-04-02, 16:16:46
Du kannst dem Ding auch einfach nen String mit Komma getrennten Werten vor die Füße werfen:

Select * From Test where Rufnr in ( 110, 112, ... )

mapel110
2008-04-02, 16:19:35
Du kannst dem Ding auch einfach nen String mit Komma getrennten Werten vor die Füße werfen:

Select * From Test where Rufnr in ( 110, 112, ... )
Das Problem ist, ich kenne die Rufnummern vorher nicht. Aber ich glaub, ich hab eine Lösung gefunden. Mal wieder kurz vor Feierabend, so dass ich sie es morgen implementieren kann. :usad:

<?php
$dbh = mysql_connect("localhost","root","geheim");
mysql_select_db("meineDb",$dbh);
$suchbegriff='Conny';$SqlQuery = " SELECT vorname,nachname FROM meineTabelle
WHERE vorname='$suchbegriff'";
$result = mysql_query ( $SqlQuery,$dbh);

while (list($vorname,$nachname) = GETROW($result))
{
$vornameArray[]=$vorname;
$nachnameArray[]=$nachname;
}
Sowas brauch ich. Irgendwie hab ich in den ganzen SQL-Tutorials dazu nix gescheites gefunden gehabt.