为啥 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() 添加逗号?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在变量名后添加尾随逗号使其成为元组?

SSIS 中的 DT_DATE 和 DT_DBTIMESTAMP 数据类型有啥区别?

为啥 Prettier 不包括尾随逗号?

为啥以及何时应该在块的末尾使用逗号?

为啥我的stm32 的tim3 1ms中断时间不准

为啥我的stm32 的tim3 1ms中断时间不准