日付型および時刻型のデータを文字列として取得する方法
この機能は、SQL Server Driver for PHP Version 1.1 で追加されました。
Version 1.1 から、接続文字列でオプションを指定することで、日付型および時刻型 (datetime、date、time、datetime2、および datetimeoffset) を文字列として取得できます。
日付型および時刻型のデータを文字列として取得するには
次の接続オプションを使用します。
'ReturnDatesAsStrings'=>true
既定値は false です。これは、datetime、Date、Time、DateTime2、および DateTimeOffset の各型が PHP Datetime 型として返されることを示します。
例
次の例は、日付型および時刻型のデータを文字列として取得するよう指定する構文を示しています。
<?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);
?>
次の例は、接続が "ReturnDatesAsStrings" => false
を指定して開始された場合にも、文字列の取得時に UTF-8 を指定することで、日付を文字列として取得できる例を示しています。
<?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);
?>
次の例は、UTF-8 および "ReturnDatesAsStrings" => true
を接続文字列で指定することで、日付を文字列として取得する方法を示しています。
<?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);
?>
次の例は、日付を PHP 型として取得する方法を示しています。既定で 'ReturnDatesAsStrings'=> false
がオンになります。
<?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);
?>