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);
?>