Datumsformat

PHPProgi

Mitglied
Hallo zusammen

Ich habe in einer MS SQL Datenbank ein Datum. Diese Format sieht so aus: 10.07.2007

Wenn ich dieses Feld nun abrufe bekomme ich diese Ausgabe: Jul 10 2007 12:00AM

Wie kann ich dies mit PHP nun umformatieren? Mit DATE_FORMAT habe ich es nicht lösen können. Ich bekomme den Fehler das diese Funktion nicht bekannt sei.

Hier mein Versuch:
PHP:
// Select
$docs = "SELECT DATE_FORMAT('invoice_date', '%d.%m.%Y') AS datum_neu FROM datum";
$res = mssql_query($docs);
$row_docs = mssql_fetch_array($res);

// Abrufen
<td class="tabtext"><?php echo $row_docs['datum_neu']; ?></td>


Ich bitte dringedst um Hilfe. Besten Dank
Gruss
 
Hallo,
ich bin jetzt auch nicht der große Könner, aber probiere es mal so:

DATE_FORMAT( `invoice_date`, \'%d. %m. %Y\' )

Gruß
Gerhard
 
Hallo PHPProgi,

wenn es sich wirklich um einen MS SQL Server handelt
wäre das eine Lösung:

"SELECT CONVERT(varchar(10), invoicedate, 104) AS datum_neu
FROM datum";

Date_Format gibt es bei MSSQL nicht, das kenne ich nur
von MySQL.

Gruß
Jens
 
Entschuldigt, wenn ich das Thema wieder hocholen muss, aber ich blicke langsam nicht mehr durch.

Ich habe ein Modul für Drupal geschrieben, welches aus der ERP-Datenbank (auf MS SQL aufsetzend) die Fehlzeiten in die MySQL-Datenbank von Drupal kopieren soll.
Die Abfrage sieht so aus:

Code:
$sql_out='SELECT
  [Tabelle1].[Name],
  CONVERT (varchar(40),[Tabell2].[Current Date],126), //mit 104 statt 126 klappt es leider nicht

//hier werden noch einige mehr abgefragt, aber darum gehts hier nicht


$query = mssql_query($sql_out);

$sql_del= 'DELETE FROM fehlzeiten;';
mysql_query($sql_del) OR die('loeschen fehlgeschlagen' . mysql_error());

if(!mssql_num_rows($query))
{
    echo "No records found";
}
else
{
    while($row = mssql_fetch_row($query))
    {
              	$Name = $row[0];
		$Current_Date = $row[1];
		$Missing_Day = $row[2];
		$Employee_No = $row[3];

		$sql_in = "INSERT INTO fehlzeiten VALUES ('$row[3]','$row[0]','$row[1]','$row[2]');";

		mysql_query($sql_in) OR die('konnte nichts einfuegen  ' . mysql_error());

  	 	}

	}
etc...

Die Abfrage funktioniert soweit auch ganz gut, nur wird das Datum wie folgt in MySQL eingefügt:
YYYY-MM-DD hh:mm:ss
Ist zwar leserlich, aber unschön.
Um daraus ein ordentliches Datum hinzubekommen, muss ich es in Drupal an sich nochmals konvertieren.
Code:
Select DATE_FORMAT(Datum, '%d.%m.%Y')

Das wäre alles an sich kein Problem, wenn der Wunsch nicht aufkäme, dass man nicht nur nach Mitarbeiternamen suchen kann (um zu schauen, wann derjenige nicht da ist), sondern auch, wer alles an einem gewissen Datum nicht verfügbar ist.
Und da der Mensch faul und ein Gewohnheitstier ist, wird natürlich nicht im Format YYYY-MM-DD gesucht, sondern in DD.MM.YYYY

Nun ist also die Frage:
Wie bekomme ich das Datum bereits "bereinigt" im gewohnten deutschen Format von der MsSQL in die MySQL übertragen,
bzw. wie kann ich die Suchanfrage so manipulieren, dass das Format des Suchstring mit dem Format in der MySQL übereinstimmt?
 
CONVERT (varchar(40),[Tabell2].[Current Date],126), //mit 104 statt 126 klappt es leider nicht

Hier ist dein Problem
Wenn du es nicht mit 104 machst bekommst du auch kein deutsches Format siehe : http://msdn.microsoft.com/en-us/library/ms187928(SQL.90).aspx
Die 126 liefert genau das was du bekommst. Wenn du die 104 nicht verwenden kannst, hast du wohl eher ein anderes Problem ( Fehlerhafte installation des MSSQL oder ähnliches)
Ich mein wenn man Zitronen bestellt, kann man keine Orangen erwarten oder ?

Grüsse Alex
 

Neue Beiträge

Zurück