SQLite3中如何给日期时间类型数据赋值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLite3中如何给日期时间类型数据赋值?相关的知识,希望对你有一定的参考价值。

INSERT INTO TEST(DATE_TIME) VALUES(?);
对上于述插入命令,如果参数是文本类型的用sqlite3_bind_text(),如果是int型的用sqlite3_bind_int(),那么,如上所述是个日期时间类型的该用什么呢?如何用法?
请高手指教。

ctrl-c ctrl-v请闪开。

参考技术A insert into test(date_time) values(date('2012-12-21 00:00'))

wish you good luck本回答被提问者采纳

Oracle与HGDB用日期给文本类型赋值时的差异

目录
环境
症状
问题原因
解决方案

环境
系统平台:Microsoft Windows (64-bit) 10
版本:5.6.5
症状
在工作中Oracle与HGDB用日期给文本类型赋值时存在差异,

Oracle中日期给文本类型赋值时格式是:dd-MM-yy ;

HGDB中日期给文本类型赋值时格式是:yyyy-MM-dd HH24:MI:SS.US’。

问题原因
由于赋值前后类型不一致,会发生隐式的类型转换,调用cast函数,但是Oracle和HGDB针对该类型转换结果不一样,

例如:

select cast( sysdate as varchar(99) ) from dual ; --> 11-12月 -20

select cast( now()::timestamp as varchar(99)) ; --> 2020-12-11 11:14:01.057804

解决方案
通过 to_char($1,‘dd-FMMM月 -yy’)可以将格式转为Oracle中格式,写入隐式转换中,可以实现自动转换。隐式转换如下:

create or replace function timestampwotz_to_varchar(timestamp without time zone) returns varchar as $$

select to_char($1,‘dd-FMMM月 -yy’);

$$ language sql strict;

create cast (timestamp without time zone as varchar) with function timestampwotz_to_varchar(timestamp without time zone) as implicit ;

create or replace function timestampwtz_to_varchar(timestamp with time zone) returns varchar as $$

select to_char($1,‘dd-FMMM月 -yy’);

$$ language sql strict;

create cast (timestamp with time zone as varchar) with function timestampwtz_to_varchar(timestamp with time zone) as implicit ;

以上是关于SQLite3中如何给日期时间类型数据赋值?的主要内容,如果未能解决你的问题,请参考以下文章

sqlite3日期数据类型

Oracle与HGDB用日期给文本类型赋值时的差异

Oracle与HGDB用日期给文本类型赋值时的差异

如何使用 sequelize 基于 sqlite3 中的“日期”列进行查询?

如何将日期+时间保存和检索到 sqlite3 数据库中?

如何从 SQLite3 和 PostgreSQL 中的时间戳中选择日期