我现在使用的是nodejs和mongodb提供的默认created_at特性。 但问题是,我创建的实际时间与创建时从服务器返回的值不同。 {
"_id": "615dbc9580b0913c58e32f41",
"createdAt": "2021-10-06T15:11:17.740Z",
"note": "I discount because i am bored",
这个问题不同于将时间戳存储到日期时间的问题。我有时间戳,所以没有tz信息。此外,我不能更改我正在使用的数据库结构,但值得指出的是,此问题也会手动执行MySQL查询插入。
我在做什么
我的API收到了这个时间戳:
1572864543
它是
Assuming that this timestamp is in seconds:
GMT: Monday 4 November 2019 10:49:03
Your time zone: lunedì 4 novembre 2019 11:49:03 GMT+01:00
当我在db上保存时,我不知道用户的MySQL时区配置是什么,但是我需要MySQL绝
现在,我在我的列中使用php timestamp (time())作为时间戳。我之所以使用它,是因为我认为将它存储为整数比使用datetime更有效。
现在我在选择两个时间戳之间的时间时遇到了严重的问题。
例如,我尝试获取昨天添加的记录(即在php时间戳中的今天日期和php时间戳中的todaysdate - 24小时之间)
在sql伪代码中看起来就像这样
SELECT * FROM table
WHERE date < phptimestamp(todaysdate) AND date > phptimestamp(todaysdate -24h)
它确实给我带来了一些记录,但由
我的数据库表中有一列包含SQL时间戳(例如,2009-05-30 19:43:41)在我的php程序中我需要Unix时间戳的等价物(一个整数)。
$posts = mysql_query("SELECT * FROM Posts ORDER BY Created DESC");
$array = mysql_fetch_array($posts);
echo $array[Created];
在它现在回显SQL时间戳的地方,我需要一个Unix时间戳。有什么简单的方法可以做到这一点吗?
我经常使用以下查询:
SELECT * FROM table WHERE Timestamp > [SomeTime] AND Timestamp < [SomeOtherTime] and publish = 1 and type = 2 order by Timestamp
我想优化这个查询,我正在考虑将时间戳作为聚集索引的主键的一部分,我认为如果时间戳是主键的一部分,表中插入的数据已经按时间戳field.Also顺序写入磁盘--我认为这大大改进了我的查询,但不确定这是否有帮助。
table has 3-4 million+ rows.
timestamp field neve