Gewusst wie: Abrufen des Datums- und Uhrzeittyps als Zeichenfolge

Diese Funktion wurde in Version 1.1 von SQL Server-Treiber für PHP hinzugefügt.

Ab Version 1.1 können Sie Datums- und Uhrzeittypen (datetime, date, time, datetime2 und datetimeoffset) als Zeichenfolgen abrufen, indem Sie in der Verbindungszeichenfolge eine Option angeben.

So rufen Sie Datums- und Uhrzeittypen als Zeichenfolge ab

  • Verwenden Sie die folgende Verbindungsoption:

    'ReturnDatesAsStrings'=>true
    

    Der Standardwert ist false. Dies bedeutet, dass die Typen datetime, Date, Time, DateTime2 und DateTimeOffset als Datetime-PHP-Typen zurückgegeben werden.

Beispiel

Das folgende Beispiel zeigt die Syntax, mit der angegeben wird, dass Datums- und Uhrzeittypen als Zeichenfolgen abgerufen werden sollen.

<?php
$serverName = "MyServer";
$connectionInfo = array( "Database"=>"AdventureWorks", 'ReturnDatesAsStrings '=> true);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
   echo "Could not connect.\n";
   die( print_r( sqlsrv_errors(), true));
}

sqlsrv_close( $conn);
?>

Im folgenden Beispiel wird gezeigt, dass Sie Datumsangaben als Zeichenfolgen abrufen können, indem Sie beim Abrufen der Zeichenfolge UTF-8 angeben, auch wenn die Verbindung mit "ReturnDatesAsStrings" => false hergestellt wurde.

<?php
$serverName = "MyServer";
$connectionInfo = array( "Database"=>"AdventureWorks", "ReturnDatesAsStrings" => false);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
   echo "Could not connect.\n";
   die( print_r( sqlsrv_errors(), true));
}

$tsql = "SELECT VersionDate FROM AWBuildVersion";

$stmt = sqlsrv_query( $conn, $tsql);

if ( $stmt === false ) {
   echo "Error in statement preparation/execution.\n";
   die( print_r( sqlsrv_errors(), true));
}

sqlsrv_fetch( $stmt );

// retrieve date as string
$date = sqlsrv_get_field( $stmt, 0, SQLSRV_PHPTYPE_STRING("UTF-8"));

if( $date === false ) {
   die( print_r( sqlsrv_errors(), true ));
}

echo $date;

sqlsrv_close( $conn);
?>

Im folgenden Beispiel wird gezeigt, wie Datumsangaben durch Angabe von UTF-8 und "ReturnDatesAsStrings" => true in der Verbindungszeichenfolge als Zeichenfolgen abgerufen werden.

<?php
$serverName = "MyServer";
$connectionInfo = array( "Database"=>"AdventureWorks", 'ReturnDatesAsStrings'=> true, "CharacterSet" => 'utf-8' );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
   echo "Could not connect.\n";
   die( print_r( sqlsrv_errors(), true));
}

$tsql = "SELECT VersionDate FROM AWBuildVersion";

$stmt = sqlsrv_query( $conn, $tsql);

if ( $stmt === false ) {
   echo "Error in statement preparation/execution.\n";
   die( print_r( sqlsrv_errors(), true));
}

sqlsrv_fetch( $stmt );

// retrieve date as string
$date = sqlsrv_get_field( $stmt, 0 );

if ( $date === false ) {
   die( print_r( sqlsrv_errors(), true ));
}

echo $date;
sqlsrv_close( $conn);
?>

Im folgenden Beispiel wird gezeigt, wie das Datum als PHP-Typ abgerufen wird. 'ReturnDatesAsStrings'=> false ist in der Standardeinstellung aktiviert.

<?php
$serverName = "MyServer";
$connectionInfo = array( "Database"=>"AdventureWorks");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
   echo "Could not connect.\n";
   die( print_r( sqlsrv_errors(), true));
}

$tsql = "SELECT VersionDate FROM AWBuildVersion";

$stmt = sqlsrv_query( $conn, $tsql);

if ( $stmt === false ) {
   echo "Error in statement preparation/execution.\n";
   die( print_r( sqlsrv_errors(), true));
}

sqlsrv_fetch( $stmt );

// retrieve date as string
$date = sqlsrv_get_field( $stmt, 0 );

if ( $date === false ) {
   die( print_r( sqlsrv_errors(), true ));
}

$date_string = date_format( $date, 'jS, F Y' );
echo "Date = $date_string\n";

sqlsrv_close( $conn);
?>

Siehe auch

Weitere Ressourcen

Abrufen von Daten