Sqlite实现默认时间为当前时间列的方法(转)

原文地址: http://blog.csdn.net/derryzhang/article/details/5033209

SQL Server中,创建表格的时候,对于时间列有时候我们可以根据需要指定默认值为当前时间(也就是说记录生成的时候有默认的时间戳)。例如:

[xhtml] view plaincopy

  1. create table log(
  2. content varchar(256),
  3. logtime datetime default getdate()
  4. )

然而在Sqlite中如何实现呢?查文档得知Sqlite中并没有getdate()函数,但其系统内置函数有datetime(),因此能不能按照下面的写法实现默认时间戳呢:

[xhtml] view plaincopy

  1. create table log(
  2. content varchar(256),
  3. logtime datetime default datetime(‘now‘)
  4. )

答案是否定的,会提示语法错误。那么应该如何声明呢?如下所示:

[c-sharp] view plaincopy

  1. create table log(
  2. content varchar(256),
  3. logtime TIMESTAMP default CURRENT_TIMESTAMP
  4. )

这个可以达到效果,但是默认的时间是以格林尼治标准时间为基准的,因此在中国使用的话会正好早8个小时。为了解决这个问题,我们可以这样声明:

[xhtml] view plaincopy

  1. create table log(
  2. content varchar(256),
  3. logtime TIMESTAMP default (datetime(‘now‘, ‘localtime‘))
  4. )

测试一下,一切正常:)

时间: 2024-07-30 10:03:14

Sqlite实现默认时间为当前时间列的方法(转)的相关文章

mysql中TIMESTAMP设置默认时间为当前时间

在我们保存数据进入到数据库中时多半会使用像php之类的脚本来获取一个时间保存到mysql中,其实在mysql可以直接使用TIMESTAMP 数据类型来实现默认类型了,下面一起来看看. 很多时候,为了简单,我们在设计数据表的时候,都需要设置时间字段为当前时间.可是MySQL 中,默认值无法使用函数,也就是你无法设置某一列,默认值是 NOW () 这样的处理.那怎么办呢? TIMESTAMP 数据类型.插入的时候,忽略该列即可.  代码如下 复制代码 dt TIMESTAMP /*等价于*/dt T

sqlite 时间函数及时间处理

SQLite分页显示:Select * From news order by id desc Limit 10 Offset 10这篇文章是根据 SQLite 官方 WIKI 里的内容翻译,如果有什么翻译不当的地方希望大家指出,毕竟我的英文水平实在很差. SQLite 包括以下五个时间函数: date(日期时间字符串, 修正符, 修正符, ……)time(日期时间字符串, 修正符, 修正符, ……)datetime(日期时间字符串, 修正符, 修正符, ……)julianday(日期时间字符串,

SQLServer 2012中,设置“时间”默认值为“当前时间"

最近,需要在SQLServer 2012中,设置datetime的默认值为当前时间. 通过可视化窗口进行设置,而不是将getdate()函数写在sql语句中,也不是将‘2022-2-2 22:22:22’写在sql语句中. 起初网上已经有文章写到,不过更多的是写在sql语句中,当时设置默认值的格式有些问题,一直失败. 正确插图:  (getdate()) 其实它是一个可视化而已,在sql语句中拼写getdate()能ok,在可视化窗口也ok的. 就是这么简单,但当时脑残了,非得加上单引号什么乱七

mysql 添加时间列(用于记录创建时间和修改时间)

在mysql建表的时候需要添加两个时间列,分别记录当前记录的创建时间和修改时间. 好. 下面是建表语句: [sql] view plain copy DROP TABLE IF EXISTS `mytesttable`; CREATE TABLE `mytesttable` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAULT NULL, `createtime` datetime DEFAULT CURRENT_TIMESTAMP, `upd

Vertica变化Local时间到GMT时间

在Vertica的数据库的使用过程中碰到这么一种场景.程序从不同一时候区的集群中收集数据写入同一张表,然后我们须要把这些数据依照GMT时间来显示. 此时我们能够通过Vertica提供TIME ZONE转换功能来达到这个效果. 首先看一下Vertica默认的TimeZone SHOW TIMEZONE; 这里假定Vertica的默认TimeZone是"Asia/Shanghai" SET TIMEZONE TO 'Asia/Shanghai'; 假定有一张表,TS列存储时间戳,TZ列存储

Vertica转换Local时间到GMT时间

在Vertica的数据库的使用过程中碰到这么一种场景,程序从不同时区的集群中收集数据写入同一张表,然后我们需要把这些数据按照GMT时间来显示.此时我们可以通过Vertica提供TIME ZONE转换功能来达到这个效果. 首先看一下Vertica默认的TimeZone SHOW TIMEZONE; 这里假定Vertica的默认TimeZone是"Asia/Shanghai" SET TIMEZONE TO 'Asia/Shanghai'; 假定有一张表,TS列存储时间戳,TZ列存储所在时

IIS 7 出现日志文件时间与服务器时间不符

最近在分析web日志,发现IIS7日志中时间与系统时间不一致,即本该上班时间才产生 的产并发访问日志,全部发生在凌晨至上班前. 本以为是系统时间设置错误,检查后一切正常.后查询资料,原来是这个原因: 日志的格式有IIS.NCSA.W3C三种: 1.IIS是固定的基于 ASCII 文本的格式,无法自定义记录的字段,字段由逗号分隔, 记录的时间为本地时间文件名前缀为u_in. 2.NCSA是美国国家超级计算技术应用中心 (NCSA) 公用日志文件格式,也是固定的基 于 ASCII 文本的格式,无法自

linux学习笔记——日志分析管理同步、修改时间、同步时间

############################################################第十单元####################################################################### 1.rsyslogd服务(syslogd加强版)rsyslogd服务功能是用来管理系统日志功能:1)直接将日志写入到数据库2)日志队列(内存队列和磁盘队列)3)模板机制,可以得到多种输出格式4)插件式结构,多种多样的输入.输出模

UTC、GTC时间和本地时间

1.问题 对于装有Windows和Linux系统的机器,进入Windows显示的时间和Linux不一致,Linux中的时间比Windows提前8个小时. 2.解决方法 修改/etc/default/rcS,设置不使用UTC时间,设置如下:UTC=no 3.解释 这个是一个关于时间的问题,我们就先来了解一下关于时间的概念 UTC(Universal Time Coordinated):协调世界时GMT(Greenwich Mean Time):格林威治时间本地时间(local time):全球二十