gpt4 book ai didi

sql-server - PDO 插入到 MSSQL 日期时间交换日期和月份

转载 作者:行者123 更新时间:2023-12-03 23:27:20 26 4
gpt4 key购买 nike

当我尝试像这样将带有日期/时间的记录插入 MSSQL 2008 datetime 字段时

$pQuery = "INSERT INTO myTable (myDate) VALUES (:my_date)";
$ps = $pdo->prepare($pQuery);
$ps->bindValue("my_date", date("Y-m-d H:i:s",strtotime('01.07.2013')), PDO::PARAM_STR);
$ps->execute();

使用表示 2013 年 7 月 1 日的字符串“01.07.2013”​​(DD.MM.YYYY),我在表中得到的值是“2013-01-07 00:00:00”,表示 2013 年 1 月 7 日.

如果日期大于 12,则插入失败并显示 PDOException“SQLSTATE[22007]: [Microsoft][SQL Server Native Client 11.0][SQL Server]The conversion of a nvarchar data type to a datetime data type resulted in超出范围的值”。

当我对 datetime2 字段执行完全相同的操作时,它会被正确插入。任何人都知道如何规避这个?将数据类型从 datetime 更改为 datetime2 不是一种选择。谢谢。

最佳答案

我在其他地方发现,无论基础数据库字段类型(datetime、datetime2、smalldatetime)如何,在 date() 函数中使用 ISO 格式都能正确插入日期。所以为了避免问题中的问题使用

date("Ymd H:i:s")

将日期插入 MS SQL 数据库时。

关于sql-server - PDO 插入到 MSSQL 日期时间交换日期和月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17030152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com