Partager via


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

Voir aussi

Autres ressources

Récupération des données