如何在SQLite中将int(UNIX时间戳)转换为datetime?
我必须用SQL创建一个表(我使用IntelliJ和Java),并且该表必须遵守以下限制 该表将包含以下列:如何在SQLite中将int(UNIX时间戳)转换为datetime?,sql,sqlite,sqlitejdbc,Sql,Sqlite,Sqlitejdbc,我必须用SQL创建一个表(我使用IntelliJ和Java),并且该表必须遵守以下限制 该表将包含以下列: 标题-需要能够存储字母、数字和特殊字符 新闻描述-需要能够存储新闻稿的文本 发布日期-需要能够存储整数(在UNIX系统中) 除此之外,我们还有以下限制: 仅当该表不存在时,才会创建该表 主键将是标题 2份时事通讯不能有相同的描述 新闻描述不能为空 如果未指定发布日期,我需要使用UTC将其设置为2019年4月27日21:11:12,并且日期必须为UNIX格式 CREATE
- 标题-需要能够存储字母、数字和特殊字符
- 新闻描述-需要能够存储新闻稿的文本
- 发布日期-需要能够存储整数(在UNIX系统中)
- 仅当该表不存在时,才会创建该表
- 主键将是标题
- 2份时事通讯不能有相同的描述
- 新闻描述不能为空
- 如果未指定发布日期,我需要使用UTC将其设置为2019年4月27日21:11:12,并且日期必须为UNIX格式
CREATE TABLE IF NOT EXISTS posts ( title VARCHAR, news_description TEXT UNIQUE NOT NULL, publication_date "I don't know what I should write here in order to respect the last restriction" PRIMARY KEY(title) );
注意:这是我的家庭作业,除了表格之外,我不能添加任何内容,因此我需要遵守表格创建过程中的所有限制。据我所知,Unix格式是指Unix epoch格式,即自1970-01-01以来的秒数。这将用数字表示:
publication_date int default 1556399472
尽管如此,我还是建议使用内置的datetime
数据类型:
publication_date datetime default '2019-04-27 21:11:12'
在需要时转换为Unix历元非常容易。据我所知,Unix格式是指Unix历元格式,即自1970-01-01以来的秒数。这将用数字表示:
publication_date int default 1556399472
尽管如此,我还是建议使用内置的datetime
数据类型:
publication_date datetime default '2019-04-27 21:11:12'
在需要时转换为Unix纪元非常容易。发布日期的数据类型必须是
整数
,此列的默认值必须是1556399472
,这是2019年4月27日21:11:12的等效时间戳
将日期作为整数存储在SQLite中没有问题,因为使用带有的'unixepoch'
修饰符可以轻松检索可读日期。
例如:
SELECT DATETIME(1556399472, 'unixepoch')
返回:
2019-04-27 21:11:12
SQLite中也没有数据类型VARCHAR
。您应该使用文本
因此,表的create语句可以是:
CREATE TABLE IF NOT EXISTS posts (
title TEXT,
news_description TEXT UNIQUE NOT NULL,
publication_date INTEGER NOT NULL DEFAULT 1556399472,
PRIMARY KEY(title)
);
如果希望发布日期
的定义为空,可以将其从发布日期
的定义中删除。
发布日期
的数据类型必须为整数
,此列的默认值必须为1556399472
,这是2019年4月27日的等效时间戳21:11:12
将日期作为整数存储在SQLite中没有问题,因为使用带有的'unixepoch'
修饰符可以轻松检索可读日期。
例如:
SELECT DATETIME(1556399472, 'unixepoch')
返回:
2019-04-27 21:11:12
SQLite中也没有数据类型VARCHAR
。您应该使用文本
因此,表的create语句可以是:
CREATE TABLE IF NOT EXISTS posts (
title TEXT,
news_description TEXT UNIQUE NOT NULL,
publication_date INTEGER NOT NULL DEFAULT 1556399472,
PRIMARY KEY(title)
);
如果希望发布日期可以为空,可以从发布日期的定义中删除notnull
。
您有一个特殊的问题:“如何在SQLite中创建具有默认值的日期时间列”。因此,通过将您的问题标题设置为“创建具有特定限制的SQL表”,您获得答案的机会减少了一半,您有一个特殊的问题:“如何在SQLite中创建具有默认值的datetime列”。因此,通过将您的问题标题设置为“创建具有特定限制的SQL表”,您获得答案的机会将减少一半。但是,如果我这样做,当我在控制台中输出数据库信息时,我将得到1556399472,而不是2019-04-27 21:11:12。有没有办法在create语句中转换它@但是其中一个限制是:publication_date-需要能够存储一个整数(在UNIX系统中)。所以必须将其存储为整数。查询表时,可以使用DATETIME()函数返回格式为YYYY-MM-DD hh:MM:ss的表。这不是你想要的吗?不知怎的,我在发送它的平台上仍然得到了一个错误的答案。我一定要注意所有的细节,这样我就不会有小错误。我很快就会来解释的。。。这是一个小错误,但现在我重新制作,它是正确的。我很感激你给我的答案。但是如果我这样做,当我在控制台中输出我的数据库信息时,我会得到1556399472,而不是2019-04-27 21:11:12。有没有办法在create语句中转换它@但是其中一个限制是:publication_date-需要能够存储一个整数(在UNIX系统中)。所以必须将其存储为整数。查询表时,可以使用DATETIME()函数返回格式为YYYY-MM-DD hh:MM:ss的表。这不是你想要的吗?不知怎的,我在发送它的平台上仍然得到了一个错误的答案。我一定要注意所有的细节,这样我就不会有小错误。我很快就会来解释的。。。这是一个小错误,但现在我重新制作,它是正确的。我很感激你给我的答案。