为啥 dbTimeStamp() 添加逗号?
Posted
技术标签:
【中文标题】为啥 dbTimeStamp() 添加逗号?【英文标题】:Why is dbTimeStamp() adding a comma?为什么 dbTimeStamp() 添加逗号? 【发布时间】:2021-04-19 01:35:38 【问题描述】:我有以下代码:
$NOW = $db->dbTimeStamp(time());
在查询中使用它会产生这样的时间戳:
2021-01-13, 08:17:06PM
但是,该逗号似乎导致 SQL Server 2005 中的查询失败。有没有办法让它不包含该逗号。
我正在使用 odbc 驱动程序连接到 SQL Server 2005 的 Debian 10 上运行 php 7.4。
编辑:这是我在查询中使用它的方式:
$sql = "UPDATE podocument SET deleted = '1', lastseen = $NOW WHERE (purchaseOrderId = '$purchaseOrderId')";
$res = $db->execute($sql);
【问题讨论】:
哇,SQL 2005。你知道,它的生命周期已经结束了 5 年多,现在可能容易受到几十个漏洞的攻击。至于在 SQL 查询中使用该值,您是否可以不只是重写查询以使用 GETDATE() T-SQL 函数,因为您似乎只是获取当前日期和时间? 究竟如何在查询中使用它?显示您的代码。 ***.com/questions/58483136/… @MartinCairney 这是我接管的遗留系统,我正在努力对其进行升级。但是,我不能使用GETDATE()
的原因是有时我需要用我从外部收到的日期/时间字符串替换time()
。
@MitchWheat 我没有使用 Yii 或 PDO,所以我不确定这与这个问题有什么关系?
【参考方案1】:
达雷尔
您可以使用here 中描述的date() 函数并使用"Ymd H:i:s"
格式字符串,而不是使用time() 函数
在 SQL Server 中始终可以正确识别使用此格式字符串。
【讨论】:
以上是关于为啥 dbTimeStamp() 添加逗号?的主要内容,如果未能解决你的问题,请参考以下文章