自上一个纪元以来的秒数的 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` 对象?