Bagikan melalui


Cara: Mengambil Jenis Tanggal dan Waktu sebagai String Menggunakan Driver SQLSRV

Unduh driver PHP

Saat menggunakan driver SQLSRV untuk Driver Microsoft untuk PHP untuk SQL Server, Anda dapat mengambil jenis tanggal dan waktu (smalldatetime, datetime, date, time, datetime2, dan datetimeoffset) sebagai string dengan menentukan opsi berikut di string koneksi atau di tingkat pernyataan:

'ReturnDatesAsStrings'=>true

Defaultnya adalah false, yang berarti bahwa jenis smalldatetime, datetime, date, time, datetime2, dan datetimeoffset akan dikembalikan sebagai objek PHP DateTime . Jika opsi ini diatur pada tingkat pernyataan, opsi ini akan mengambil alih pengaturan tingkat koneksi.

Driver PDO_SQLSRV mengembalikan jenis tanggal dan waktu sebagai string secara default. Untuk mengambilnya sebagai objek DateTime PHP, lihat Cara: Mengambil Jenis Tanggal dan Waktu sebagai Objek TanggalWaktu PHP Menggunakan PDO_SQLSRV

Contoh 1

Contoh berikut menunjukkan sintaks yang menentukan untuk mengambil jenis tanggal dan waktu sebagai string.

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

Contoh 2

Contoh berikut menunjukkan bahwa Anda dapat mengambil tanggal sebagai string dengan menentukan UTF-8 saat Anda mengambil string, bahkan ketika koneksi dibuat dengan "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);
?>

Contoh 3

Contoh berikut menunjukkan cara mengambil tanggal sebagai string dengan menentukan UTF-8 dan "ReturnDatesAsStrings" => true dalam string koneksi.

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

Contoh 4

Contoh berikut menunjukkan cara mengambil tanggal sebagai jenis PHP. 'ReturnDatesAsStrings'=> false aktif secara default.

<?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 a DateTime object, then convert to string using PHP's date_format function
$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);
?>

Contoh 5

Opsi ReturnDatesAsStrings di tingkat pernyataan mengambil alih opsi koneksi yang sesuai.

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

$tableName = 'MyTable';
$options = array('ReturnDatesAsStrings' => true);
$query = "SELECT DateTimeCol FROM $tableName";
$stmt = sqlsrv_prepare($conn, $query, array(), $options);
if ($stmt === false) {
   echo "Error in statement preparation/execution.\n";
   die(print_r(sqlsrv_errors(), true));
}
sqlsrv_execute($stmt);

// Expect the fetched value to be a string
$field = sqlsrv_get_field($stmt, 0);
echo $field . PHP_EOL;

sqlsrv_close($conn);
?>

Lihat Juga

Mengambil Data

Cara: Mengambil Jenis Tanggal dan Waktu sebagai Objek TanggalWaktu PHP Menggunakan PDO_SQLSRV