自上一个纪元以来的秒数的 T-Sql 日期格式/sqlite 输入的格式

Posted

技术标签:

【中文标题】自上一个纪元以来的秒数的 T-Sql 日期格式/sqlite 输入的格式【英文标题】:T-Sql date format for seconds since last epoch / formatting for sqlite input 【发布时间】:2010-09-05 21:18:48 【问题描述】:

我猜它应该是这样的:

CONVERT(CHAR(24), lastModified, 101)

但是我不确定第三个参数的正确值。

谢谢!


好吧,我正在尝试编写一个脚本来将我的 sql server db 复制到一个 sqlite 文件,该文件被下载到一个 air 应用程序,然后将数据同步到另一个 sqlite 文件。我在约会方面遇到了很多麻烦。如果我在空中选择一个日期并尝试插入它,它会失败,因为它的格式不正确......即使它是一个有效的开始日期。我想我会尝试尝试使用 unix 时间,因为这是迄今为止唯一有效的方法。我正在考虑将它们保留为 varchar,因为无论如何我都不按它们排序。

【问题讨论】:

【参考方案1】:

定义“最后一个纪元”。这接近了吗?

选择 Cast(lastModified As Integer)

【讨论】:

【参考方案2】:

最后一个纪元是 1970 GMT?

SELECT DATEDIFF(s,'19700101 05:00:00:000',lastModified)

另见Epoch Date

【讨论】:

【参考方案3】:

如果您将它们存储为 varchar,请将它们存储为 YYYYMMDD。这样,您以后可以根据需要对它们进行排序。

【讨论】:

【参考方案4】:

SQL 服务器只有 2 种故障安全日期格式

ISO = YYYYMMDD,运行这个看看

  select convert(varchar(10),getdate(),112)

ISO8601 = yyyy-mm-dd Thh:mm:ss:mmm(无空格) 运行这个看看

select convert(varchar(30),getdate(),126)

要了解有关日期如何存储在 SQL Server 中的更多信息,我写了How Are Dates Stored In SQL Server?

【讨论】:

【参考方案5】:

我最终在 MS SQL 中使用了格式 120:

convert(char(24), lastModified, 120)

每次我需要在 SQLite 中选择一个日期以用于非显示目的时:

strftime(\"%Y-%m-%d %H:%M:%S\", dateModified) as dateModified

现在我只需要一种可读/友好的方式来向用户显示日期!

编辑:接受答案交给谁告诉我如何从 sqlite 中很好地显示日期;p

【讨论】:

接受挑战:不太清楚你所说的“很好地展示”是什么意思,所以我猜你的意思是...... 不太清楚我需要这个做什么,因为它是从 2 年半前开始的【参考方案6】:

sqlite> 选择日期时间(); 2011-01-27 19:32:57

sqlite> select strftime('%Y-%m-%d %H:%M:%S','now'); 2011-01-27 19:33:57

参考: (日期时间函数)[http://sqlite.org/lang_datefunc.html]

【讨论】:

以上是关于自上一个纪元以来的秒数的 T-Sql 日期格式/sqlite 输入的格式的主要内容,如果未能解决你的问题,请参考以下文章

从纪元到相对日期的秒数

如何从 gmtime() 的时间 + 日期输出中获取纪元以来的秒数?

在比较 jwt.iat(发布于)属性与当前日期时间时遇到问题 - (“自纪元以来的秒数”NumericDate)

在 Python 中,如何将自纪元以来的秒数转换为 `datetime` 对象?

如何在python中确定视频的开始时间和结束时间(自纪元以来的秒数)?

获取 C 中特定日期的纪元秒数