Procédure : récupérer le type de date et d'heure sous forme de chaînes
Cette fonctionnalité est une nouveauté de la version 1.1 du Pilote SQL Server pour PHP.
À partir de la version 1.1, vous pouvez récupérer les types de date et d'heure (datetime, date, time, datetime2 et datetimeoffset) sous la forme de chaînes en spécifiant une option dans la chaîne de connexion.
Pour récupérer les types de date et d'heure sous forme de chaînes
Utilisez l'option de connexion suivante :
'ReturnDatesAsStrings'=>true
La valeur par défaut est false, ce qui signifie que les types datetime, Date, Time, DateTime2 et DateTimeOffset sont retournés sous la forme de types PHP Datetime.
Exemple
L'exemple ci-dessous illustre la syntaxe spécifiant de récupérer les types de date et d'heure sous forme de chaînes.
<?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);
?>
L'exemple suivant montre que vous pouvez récupérer des dates sous forme de chaînes en spécifiant UTF-8 lorsque vous récupérez la chaîne, même lorsque la connexion a été effectuée avec "ReturnDatesAsStrings" => false
.
<?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);
?>
L'exemple ci-dessous indique comment récupérer des dates sous forme de chaînes en spécifiant UTF-8 et "ReturnDatesAsStrings" => true
dans la chaîne de connexion.
<?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);
?>
L'exemple suivant montre comment récupérer la date en tant que type PHP. 'ReturnDatesAsStrings'=> false
est activé par défaut.
<?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);
?>