SQL如何获取系统时间
sql读取系统日期和时间的方法如下:
--获取当前日期(如:yyyymmdd)
select CONVERT (nvarchar(12),GETDATE(),112)
--获取当前日期(如:yyyymmdd hh:MM:ss)
select GETDATE()
--获取当前日期(如:yyyy-mm-dd)
1、创建测试表,
create table test_date(id number, times date);
2、插入测试数据
insert into test_date select level, sysdate-level/24/60 t from dual connect by level <= 100;
commit;
3、查询表中数据,select t from test_date t;
4、编写sql,获取加5分钟大于等于当前系统时间的记录; select t from test_date t where times+5/24/60>=sysdate;
public static final String DBUSER="scott"; 改成小写
public static final String DBPWD="tiger"; 改成小写
String sql="select sysdate from dual"; 去掉分号
main中只要写
new ConnectionJDBC();
就可以了
设置个默认值啊,比如
create table test(id int,
itime date default sysdate);
然后你插入数据:
insert into test(id) values (1);commit;
然后时间列就是当前系统时间了
oracle中无法创建以全数字命令的表,必须要带有其他字母,可用如:T_日期 的格式。
单纯创建手动执行即可:
create table T_20151223(id int,
name varchar2(10));
但一般情况,日期为动态(即随时间变化而变化),则需要用存储过程创建:
declarev_date varchar2(8);--定义日期变量
v_sql varchar2(2000);--定义动态sql
v_tablename varchar2(20);--定义动态表名
begin
select to_char(sysdate,'yyyymmdd') into v_date from dual;--取日期变量
v_tablename := 'T_'||v_date;--为动态表命名
v_sql := 'create table '||v_tablename||'
(id int,
name varchar2(20))';--为动态sql赋值
dbms_outputput_line(v_sql);--打印sql语句
execute immediate v_sql;--执行动态sql
end;
给你个参考
select (datepart(year,getdate())100+datepart(month,getdate()))100+datepart(day,getdate())
Oracle 创建数据表
数据库中的每一个表都被一个模式(或用户)所拥有,因此表是一种典型的模式对象。在创建数据表时,Oracle 将在一个指定的表空间中为其分配存储空间。最初创建的表时一个空的逻辑存储结构,其中不包含任何数据记录。
一、数据表的逻辑结构
表是最常见的一种组织数据的方式,一张表一般都具有多个列(即多个字段)。每个字段都具有特定的属性,包括字段名、数据类型、字段长度、约束、默认值等,这些属性在创建表的时被确定。
Oracle 常用的5种数据类型:
1、字符类型
字符类型用于什么包含字母、数字数据的字段。对字符数据类型再细分可包括定长字符串和变长字符串两种,分别对应着 char 数据类型和 varchar 数据类型。
CHAR 数据类型,用于存储固定长度的字符串。一旦定义了 char 类型的列,该列就会一直保持声明时所规定的长度大小。当为该列的某个单元格(行与列的交叉处就是单元格)赋予长度较短的数值后,空余部分 Oracle 会用空格自动填充;如果字段保存的字符长度大于规定的长度,则 Oracle 会产生错误信息。char 类型的长度范围为 1~ 2000字节。
VarChar2 类型 : varchar2 用于存储变长的字符串。将字段定义为 varchar2 数据类型时,该字段的长度将根据实际字符数据的长度自动调整(即如果该列的字符串长度小于定义时的长度,系统不会使用空格填充,而是保留实际的字符串长度)。因此,在大多数情况下,都会使用 varchar2 替换 char 数据类型。
2、数值类型
数值数据类型的字段用于存储带符号的整数或浮点数。Oracle 中的 number 数据类型具有精度(precision)和范围(scale)。精度指定所有数字位的个数,范围值定小数的位数,这两个参数都是可选的。如果插入的数据超过指定的位数,Oracle 将自动进行四舍五入。
3、日期时间类型
Oracle 提供的日期时间数据类型时 DATE,它可以存储日期和时间的组合数据。用DATE 数据类型存储日期时间比使用字符数据类型进行存储更简单,并且可以借助于 Oracle 提供的日期时间函数方便处理数据。
在 Oracle 中,可以使用不同的方法建立日期值。最常用的获取日期的方法是通过 sysdate 函数,调用该函数可以获取当前系统的日期值。还可以使用 To_DATE 函数将数值或字符串转换为 DATE 类型。 Oracle 默认的日期和时间格式由初始化参数 NLS_DATE_FORMAT 指定,一般为 DD-MM-YY。
4、LOB类型
Lob 数据类型用于大型的、未被结构化的数据,例如二进制文件、文件和其他类型的外部文件。LOB 类型的数据可以存储在数据库内部,也可以将数据存储在外部文件中,而将指向数据的指针存储在数据库中。LOB 数据类型分为 BLOB、CLOB 和 BFILE 数据类型。
BLOB 类型:blob类型用于存储二进制对象。典型的 blob 可以包括图像、音频文件、视频文件等。在 blob 类型的字段中能够存储最大为 128MB的二进制对象。
CLOB 类型: clob 类型用于存放字符格式的大型对象,CLOB 类型的字段能够存储最大为 128MB 的对象。Oracle 首先把数据转换成Unicode格式的编码,然后再将它存储在数据库中。
BFILE 类型:bfile 类型用于存储二进制格式的文件;在 bfile 类型的字段中可以将最大为128MB 的二进制文件作为 *** 作系统文件存储在数据库外部,文件的大小不能超过 *** 作系统的限制;bfile 类型的字段中仅保存二进制文件的指针,并且 bfile 字段是只读的,不能修改。
5、RowID 数据类型
RowID 数据类型被称为 “伪列类型”,用于在 Oracle 内部保存表中的每条记录的物理地址。在 Oracle 内部通过 rowid 来定位所需记录的。由于 rowID 实际上保存的时数据记录的物理地址,所以通过 rowid 来访问数据记录可以获得最快的访问速度。为了便于使用,Oracle 自动为每一个表建立一个名称为 rowID 的字段,可以对这个字段进行查询、更新和删除等 *** 作,设置利用 rowID 来访问表中的记录以获取最快的 *** 作速度。
注意:由于 rowid 字段是隐式的,用户检索表时不会看到该字段,因此,如果要使用 rowid 字段,则必须显示地指定其名称。
二、创建数据表
创建表通常使用 create table 语句。如果用户在自己的模式中创建一个表,则用户必须具有 create table 系统权限。如果要在其他用户模式中创建表,则必须具有 create any tables 的系统权限。此外,用户还必须在指定的表空间中设置一定的配额存储空间。
创建表应该包含哪些列并且指定这些列的数据类型,而这些内容最好在对用户需求分析的基础上进行确定。
语法格式:
create table table_name(
字段名1 数据类型,
字段名2 数据类型
);
注意:1、如果用户要在其他模式中创建表,则必须在表名前加上某个模式的名称。
2、在create table 语句中可以使用嵌套子查询,基于已经存在的表或视图来创建新表,不需要为新表定义字段。
例:
SQL > create table students_2 as select from students;
三、数据表的特性
在 Oracle 中创建表时,表的特性将决定系统如何创建表、如何在磁盘上存储表,以及表创建后使用时的最终执行方式等。
1、存储参数
当用户在 Oracle 中创建表时,Oracle 允许用户指定该表如何使用磁盘上的存储空间。如果仅为表指定了表空间,而没有设置存储参数,则该表将采用其所属表空间的默认的存储参数。然而,表空间的默认存储参数不一定对表空间的每一个表都适用,因此,当表所需要的存储参数与表空间的默认存储参数不匹配时,需要用户在创建表时显式指定存储参数以体寒表空间的默认存储参数。
在创建表时,可以通过使用 storage 子句来设置存储参数,这样可以控制表中盘区的分配管理方式。对于本地化管理的表空间而言,如果指定盘区的管理方式为 autoallocate(自动化管理) ,则可以在 storage 子句中指定 initial、next 和 minextents 这3个存储参数,Oracle 将根据这3个存储参数的值为表分配的数据段初始化盘区大小,以后盘区的分配将由 Oracle 自动管理。如果指定的盘区管理方式为 uniform(等同大小管理),这时不能为表指定任何 storage 子句,盘区的大小将是统一大小。
参数 next 用于指定为存储表中的数据分配的第二个盘区大小。该参数在字典管理的表空间中起作用,而在本地化管理的表空间中不再起作用,因为随后分配的盘区将由 Oracle 自动决定其大小。参数 minextents 用于指定允许为表中的数据所分配的最小盘区数目,同样在本地化管理的表空间中该参数也不再起作用。因此,在存储参数中,主要是设置 inital 参数。该参数用于为表指定分配的第一个盘区大小,以 KB 和 MB 为单位。当为已知大小的数据建立表时,可以将 initial 设置为一个可以荣脑所有数据的数值,这样可以将表中所有的数据存储在一个盘区从而避免产生碎片。
例:
SQL > select initial_extent from user_tables where table_name = 'students'
在user_tables 数据字典表中查询表 students 的第一个盘区的大小。
2、数据块管理参数
对于一般不带有LOB 类型的数据表而言,一个数据块可以存放表的多行记录,用户可以设置的数据块管理参数主要分为以下两类:
1、Pctfree 和 pctused
这两个参数用于控制数据块中空闲空间的使用方法
以上就是关于SQL如何获取系统时间全部的内容,包括:SQL如何获取系统时间、oracle 语句取时间(times)字段 加5分钟 大于等于当前系统时间的语句怎么写、java 获取oracle数据库中的系统时间~目的只是想从数据库取出系统时间 然后打印出来、新人求大虾们帮忙。。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)