Oracle NoSQL 是否提供 SDK API 或 sql 内置函数可以自动为列生成系统时间戳?
我们有一个名为的列timeUpdated
,它记录了同一行中任何数据更新的时间,我们可以在更新该行时传递系统时间,但它可能与数据最终提交到数据库的时间有一点差距。传递的时间戳将是我们应用服务器的本地时间
Oracle NoSQL 是否提供 SDK API 或 sql 内置函数可以自动为列生成系统时间戳?
我们有一个名为的列timeUpdated
,它记录了同一行中任何数据更新的时间,我们可以在更新该行时传递系统时间,但它可能与数据最终提交到数据库的时间有一点差距。传递的时间戳将是我们应用服务器的本地时间
您可以使用current_time()
- 以 UTC 格式返回当前时间,作为具有毫秒精度的时间戳值。
sql-> create table TEST ( a integer, b timestamp(3), primary key (a));
Statement completed successfully
sql-> insert into TEST values (1, current_time());
{"NumRowsInserted":1}
1 row returned
sql-> select * from TEST;
{"a":1,"b":"2021-06-15T09:52:01.561Z"}
sql-> update TEST set b = current_time() where a =1;
{"NumRowsUpdated":1}
1 row returned
sql-> select * from ping;
{"a":1,"b":"2021-06-15T09:53:24.101Z"}
但是您也可以使用该modification_time
功能允许您查看一行的最近修改时间(以 UTC 为单位)。
sql-> select id, firstname, lastname, modification_time($u) FROM users $u ;
{"id":4,"firstname":"Peter","lastname":"Smith","Column_4":"2021-06-08T08:27:19.640Z"}
{"id":2,"firstname":"John","lastname":"Anderson","Column_4":"2021-06-08T08:27:19.624Z"}
{"id":5,"firstname":"Dana","lastname":"Scully","Column_4":"2021-06-08T08:27:19.644Z"}
{"id":1,"firstname":"David","lastname":"Morrison","Column_4":"2021-06-08T08:27:19.613Z"}
{"id":3,"firstname":"John","lastname":"Morgan","Column_4":"2021-06-08T08:27:19.630Z"}
这里的表,这个表没有时间戳列
sql-> desc as json table users;
{
"json_version" : 1,
"type" : "table",
"name" : "Users",
"fields" : [{
"name" : "id",
"type" : "INTEGER",
"nullable" : false
}, {
"name" : "firstname",
"type" : "STRING",
"nullable" : true
}, {
"name" : "lastname",
"type" : "STRING",
"nullable" : true
}, {
"name" : "income",
"type" : "INTEGER",
"nullable" : true
}],
"primaryKey" : ["id"],
"shardKey" : ["id"]
}
在这种情况下,这是管理日期的 NoSQL 系统,但在您的用例中,您似乎想要管理自己的列