簡體   English   中英

PHP PDO將字符串轉換為MS SQL datetime2

[英]PHP PDO convert string to MS SQL datetime2


將字符串轉換為有效的datetime2以在MS SQL DB中使用時遇到問題。 我正在使用SQL的CAST運算符將其轉換為有效格式。 該代碼如下所示:

include("sqlconnection.php");
$statement = $pdo->prepare("UPDATE auftrag SET bestelldatum = CAST(:bestelldatum AS datetime(7)), lieferdatum_wunsch = :lieferdatum, fk_id_kunde = (Select id_kunde from kunde where firmenname = :kunde), fk_id_auftragsstatus = (SELECT id_auftragsstatus from auftragsstatus WHERE bezeichnung = :status) WHERE id_auftrag = :id");
$result = $statement->execute(array("bestelldatum" => $_POST['bestelldatum'], "lieferdatum" => $_POST['lieferdatum'], "kunde" => $_POST['kunde'], "status" => $_POST['status'], "id" => $_POST['id']));
echo $result;

$ _POST ['bestelldatum']的格式如下:dd / mm / yyyy
我收到以下錯誤:

Uncaught PDOException: SQLSTATE[42000]: 
[Microsoft][ODBC Driver 13 for SQL Server][SQL Server]CAST oder CONVERT: Für 
den datetime-Typ wurden ungültige Attribute angegeben. in 
C:\xampp\htdocs\php\scripts\scripts.php:402 Stack trace: #0 
C:\xampp\htdocs\php\scripts\scripts.php(402): PDOStatement->execute(Array) #1 
C:\xampp\htdocs\php\scripts\scripts.php(30): saveAuftragChanges() #2 {main} 
thrown in C:\xampp\htdocs\php\scripts\scripts.php on line 402

翻譯:轉換或轉換為類型'datetime'指定的無效屬性

我希望你能幫幫我,
誠懇,
一月

strtotime函數期望帶斜杠的日期為美國格式(mm / dd / yyyy),但您的日期為歐洲格式,因此首先需要將斜杠更改為破折號。 使用以下命令格式化SQL日期。

$bestelldatum = date('Y-m-d',strtotime(str_replace('/','-',$_POST['bestelldatum'])));

如果還需要時間,請嘗試使用此時間(唯一的變化是在創建的變量中添加有效時間)。

$bestelldatum = date('Y-m-d 00:00:01',strtotime(str_replace('/','-',$_POST['bestelldatum'])));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM