PHP:将当前时间戳插入 SQL Server 2005


PHP: Inserting the current timestamp into SQL Server 2005

如何将current_timestamp插入具有时间戳列的 SQL Server 2005 数据库?

它应该很简单,但我无法让它工作。 举例说明将不胜感激。

如果你可以从PHP执行查询,那么它应该只是使用'getdate()'的问题;

update MyTable set MyColumn=getdate();

insert into MyTable (MyColumn) values (getdate());

列数据类型应为日期时间

您可以让数据库计算出日期:

$sql = 'INSERT INTO tablename (fieldname) VALUES (getdate())';

或者让 PHP 计算出日期

$sql = 'INSERT INTO tablename (fieldname) VALUES (''' . date('Y-m-d H:i:s') . ''')';

然后类似于mssql_execute($sql);但这取决于您连接到数据库的方式

要在时间戳

字段中插入数据,我认为您必须使用 DEFAULT .例如:

INSERT INTO User(username, EnterTS) VALUES ('user123', DEFAULT)

其中EnterTS是时间戳字段

您只需使用常规机制在 SQL Server 中执行查询,然后使用以下机制。

current_timestamp函数返回它

 insert into table (creation_date) VALUES (current_timestamp)

完整示例

CREATE table timestamp_test (creation_timestamp datetime)
INSERT INTO timestamp_test (creation_timestamp) VALUES (current_timestamp)
SELECT * FROM timestamp_test
DROP TABLE timestamp_test

如果您解释收到的错误(并发布插入或更新代码),可能会更容易了解问题所在。一个可能的问题是您必须插入日期时间字段(或者在 2008 年您也可以使用日期字段)。有时人们认为他们可以将当前日期插入时间戳字段中,但即使此数据类型的名称看起来应该与日期相关,此数据类型实际上与日期和时间无关,并且不能接受日期数据。

我意识到这是一个旧帖子,但我遇到了这个,并认为其他人也可能。

我所做的是使用 datetime 的数据类型在表中创建一个字段,然后对于默认值或绑定的列属性,我输入 getdate() . 输入到表中的每条记录现在都有一个日期和时间戳。