在db2数据库如何转换从系统获取到的日期格式

在db2数据库如何转换从系统获取到的日期格式,第1张

select current date -1 day from sysibmsysdummy1

这种日期类型是:

2014-01-18

values to_date('20140101','yyyy-mm-dd')

2014-01-01 00:00:000

是timestamp格式,所以格式不一样

你可以修改一下你的语句:

select from a where to_char(date1,'yyyy-mm-dd') <>(current date -1 day);

试试可不可以。

1、如果数据库中存储时间的数据类型为datetime,那就避免在后台代码(aspxcs)中转化时间格式,将格式转化的任务放到界面代码(aspx)上。

无论获取的时间是什么格式的,在后台不要对这个时间的值进行任何 *** 作(比如赋值等,否则系统会将时间隐式转换),而是直接在界面代码(aspx)用DataBinder、Eval等方法来直接进行格式化:

后台关键代码:

<span style="white-space:pre"> </span>DataTable dt = new NewsManager()SelectById(newsid); //这里得到的dt为从直接数据库中查询到的数据

<span style="white-space:pre"> </span> repNewsDataSource =dt;

repNewsDataBind();

前台关键代码:

<span style="white-space:pre"> </span><asp:Repeater ID="repNews" runat="server">

<ItemTemplate>

<p class="con_time">

发布时间:

<%# DataBinderEval(ContainerDataItem,"createTime","{0:yyyy-MM-dd HH:mm:ss}") %> <%--此处createTime为上面dt中的字段名--%>

</p>

</ItemTemplate>

</asp:Repeater>

给你复制一长段:

oracle数据库默认的时间格式只能精确到天(DD-MON-RR),在实际工作环境中,开发程序通常需要取得精确到秒的时间值,经查询资料在oracle中修改时间值的方式大致可以分为以下几种:

1、临时修改时间格式

第一种方式是通过to_char函数来获得精确的时间值

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

这种方式对于DBA来说最省事,因为不需要改动数据库任何参数,但是每次都需要用函数转换,太麻烦。

第二种方式是修改当前会话的时间格式值

alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';

这种方式的优点只要在当前会话关闭前,在当前会话发出的所有时间值都会是'YYYY-MM-DD HH24:MI:SS',

缺点是关闭当前会话后,时间值又会返回到数据库原先的格式。

通过这种方式修改后,我们可以通过查询数据库视图查看到时间格式的变化

orcl@ SYS> select from v$nls_parameters;

PARAMETER VALUE

---------------------------------------------------------------- ----------------------------------------

NLS_LANGUAGE AMERICAN

NLS_TERRITORY AMERICA

NLS_CURRENCY $

NLS_ISO_CURRENCY AMERICA

NLS_NUMERIC_CHARACTERS ,

NLS_CALENDAR GREGORIAN

NLS_DATE_FORMAT YYYY:MM:DD HH24:MI:SS

NLS_DATE_LANGUAGE AMERICAN

NLS_CHARACTERSET ZHS16GBK

NLS_SORT BINARY

NLS_TIME_FORMAT HHMISSXFF AM

NLS_TIMESTAMP_FORMAT DD-MON-RR HHMISSXFF AM

NLS_TIME_TZ_FORMAT HHMISSXFF AM TZR

NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HHMISSXFF AM TZR

NLS_DUAL_CURRENCY $

NLS_NCHAR_CHARACTERSET AL16UTF16

NLS_COMP BINARY

NLS_LENGTH_SEMANTICS BYTE

NLS_NCHAR_CONV_EXCP FALSE

NLS_DATE_FORMAT的值由原先的"DD-MON-RR"变为"YYYY:MM:DD HH24:MI:SS";

注意:在v$parameter中,也有NLS_DATE_FORMAT参数值,但是修改此参数值不会引起数据库时间格式的变化。

2、永久修改

经测试,视图v$nls_parameters中的NLS_DATE_FORMAT值的来源,并非是数据库内部设置,其实来自 *** 作系统的环境变量,

所以,我们如果想永久修改的话,只需要在系统环境变量中,添加此一个参数值即可:

在 bash_profile文件中添加export NLS_DATE_FORMAT='YYYY:MM:DD HH24:MI:SS'

然后执行 source ~/bash_profile,使环境变量生效。

当我们再次进入数据库查询系统时间时,即可获取我们想要的时间格式值。

mysql> SELECT

-> DATE_FORMAT(NOW(), '%m-%d' ) A

看看执行是否正常

正常的话, 就把 NOW() 替换为你表里面的字段名字。 后面再 FROM 你的表。

第二个参数:

%W 星期名字(Sunday……Saturday)

%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)

%Y 年, 数字, 4 位

%y 年, 数字, 2 位

%a 缩写的星期名字(Sun……Sat)

%d 月份中的天数, 数字(00……31)

%e 月份中的天数, 数字(0……31)

%m 月, 数字(01……12)

%c 月, 数字(1……12)

%b 缩写的月份名字(Jan……Dec)

%j 一年中的天数(001……366)

%H 小时(00……23)

%k 小时(0……23)

%h 小时(01……12)

%I 小时(01……12)

%l 小时(1……12)

%i 分钟, 数字(00……59)

%r 时间,12 小时(hh:mm:ss [AP]M)

%T 时间,24 小时(hh:mm:ss)

%S 秒(00……59)

%s 秒(00……59)

%p AM或PM

%w 一个星期中的天数(0=Sunday ……6=Saturday )

%U 星期(0……52), 这里星期天是星期的第一天

%u 星期(0……52), 这里星期一是星期的第一天

%% 一个文字“%”。

所有的其他字符不做解释被复制到结果中。

可以考虑使用SQL中convert函数转换datetime类型的显示格式。

convert函数定义:

CONVERT() 函数是把日期转换为新数据类型的通用函数。

具体convert函数语法:

CONVERT(data_type(length),data_to_be_converted,style)

其中:data_type(length)为目标数据类型(带有可选的长度);

data_to_be_converted为需要时间转换的值;

style为输出日期/时间的表示格式。

实例:

下面的脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE() 函数来获得当前的日期/时间:

CONVERT(VARCHAR(19),GETDATE())

CONVERT(VARCHAR(10),GETDATE(),110)

CONVERT(VARCHAR(11),GETDATE(),106)

CONVERT(VARCHAR(24),GETDATE(),113)

结果为:

Dec 29 2008 11:45 PM

12-29-2008

29 Dec 08

29 Dec 2008 16:25:46635

SQL语言包含6个部分:

一:数据查询语言(DQL:Data Query Language):

其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。

二:数据 *** 作语言(DML:Data Manipulation Language):

其语句包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。

三:事务处理语言(TPL):

它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。

四:数据控制语言(DCL):

它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。

五:数据定义语言(DDL):

其语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。

六:指针控制语言(CCL):

它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的 *** 作。

参考资料:

W3school SQL CONVERT函数

1、常用日期方法(下面的GetDate() = '2006-11-08 13:37:56233')

(1)DATENAME ( datepart ,date )

返回表示指定日期的指定日期部分的字符串。Datepart详见下面的列表

SELECT DateName(day,Getdate()) –返回8

(2)DATEPART ( datepart , date )

返回表示指定日期的指定日期部分的整数。

SELECT DATEPART(year,Getdate()) –返回2006

(3)DATEADD (datepart , number, date )

返回给指定日期加上一个时间间隔后的新datetime 值。

SELECT DATEADD(week,1,GetDate()) --当前日期加一周后的日期

(4)DATEDIFF ( datepart , startdate , enddate )

返回跨两个指定日期的日期边界数和时间边界数。

SELECT DATEDIFF(month,'2006-10-11','2006-11-01') --返回1

(5)DAY ( date )

返回一个整数,表示指定日期的天datepart 部分。

SELECT day(GetDate()) –返回8

(6)GETDATE()

以datetime 值的SQL Server 2005 标准内部格式返回当前系统日期和时间。

SELECT GetDate() --返回2006-11-08 13:37:56233

(7)MONTH ( date )

返回表示指定日期的“月”部分的整数。

SELECT MONTH(GETDATE()) --返回11

(8)YEAR ( date )

返回表示指定日期的“年”部分的整数。

SELECT YEAR(GETDATE()) --返回2006

2、取特定日期

(1)获得当前日期是星期几

SELECT DateName(weekday,Getdate()) --Wednesday

(2)计算哪一天是本周的星期一

SELECT DATEADD(week, DATEDIFF(week,'1900-01-01',getdate()), '1900-01-01') --返回2006-11-06 00:00:00000

SELECT DATEADD(week, DATEDIFF(week,0,getdate()),0)

(3)当前季度的第一天

SELECT DATEADD(quarter, DATEDIFF(quarter,0,getdate()), 0)—返回2006-10-01 00:00:00000

(4)如何取得某个月的天数

SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,'2006-02-03')+1,0))) —返回28

(5)一个季度多少天

declare @m tinyint,@time smalldatetime

select @m=month(getdate())

select @m=case when @m between 1 and 3 then 1

when @m between 4 and 6 then 4

when @m between 7 and 9 then 7

else 10 end

select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'

select datediff(day,@time,dateadd(mm,3,@time)) —返回92

(6)获得年月日(yyyy-MM-dd)

SELECT CONVERT(VARCHAR(10),GETDATE(),120) –返回2006-11-08

3、其它

(1)--下面的示例将日期指定为数字。数据库引擎将0 解释为1900 年1 月1 日。

SELECT MONTH(0), DAY(0), YEAR(0) –返回1 1 1900

--下面两句是等效的

SELECT DATENAME(WEEKDAY,0)

SELECT DATENAME(WEEKDAY,'1900-01-01')

(2)SET DATEFIRST { number | @number_var }

将一周的第一天设置为从1 到7 的一个数字。

SET DATEFIRST 1 --表示一周的第一天是“星期一"

SELECT DATENAME(WEEKDAY,GETDATE()) --Wednesday

SELECT DATEPART(weekday,GETDATE()) --返回3

--查看当前设置情况

select @@DATEFIRST

(3)SET DATEFORMAT { format | @format_var }

设置用于输入datetime 或smalldatetime 数据的日期部分(月/日/年)的顺序。

有效参数包括mdy、dmy、ymd、ydm、myd 和dym。

该设置仅用在将字符串转换为日期值时的解释中。它不影响日期值的显示。

SET DATEFORMAT 的设置是在执行或运行时设置,而不是在分析时设置。

SET DATEFORMAT 将覆盖SET LANGUAGE 的隐式日期格式设置。

下面是例子:

-- Set date format to year, day, month

SET DATEFORMAT ydm;

GO

DECLARE @datevar DATETIME;

SET @datevar = '1998/31/12';

SELECT @datevar AS DateVar;

GO

-- Set date format to year, month, day

SET DATEFORMAT ymd;

GO

DECLARE @datevar DATETIME;

SET @datevar = '1998/12/31';

SELECT @datevar AS DateVar;

GO

(4)日期部分的列表

year,缩写 yy, yyyy

quarter,缩写qq, q

month,缩写mm, m

dayofyear,缩写dy, y

day,缩写dd, d

week,缩写wk, ww

weekday,缩写dw

hour,缩写hh

minute,缩写mi, n

second,缩写ss, s

millisecond,缩写ms

数据类型

范围(精确度)

datetime

1753 年 1 月 1 日到 9999 年 12 月 31 日

333 毫秒

smalldatetime

1900 年 1 月 1 日到 2079 年 6 月 6 日

1 分钟

区别1:

①date类型可用于需要一个日期值而不需要时间部分时;

②datetime类型:可用于需要同时包含日期和时间信息的值。

区别2:

①date:MySQL 以 'YYYY-MM-DD' 格式检索与显示date值;

②datetime:MySQL 以 'YYYY-MM-DD HH:mm:ss'格式检索与显示 DATETIME 类型。

扩展资料:

SQL:

结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。

结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3 135-1986),1987年得到国际标准组织的支持下成为国际标准。

不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。

所以,实际上不同数据库系统之间的SQL不能完全相互通用。

date:

(1)省略 年/月/日 显示系统日期并提示输入新的日期,不修改则可直接按回车键,要修改则直接输入新日期。

⑵当机器开始启动时,有自动处理文件(AUTOEXECBAT)被执行,则系统不提示输入系统日期。否则,提示输入新日期和时间。

DateTimePicker控件:

C/S设计中的DateTimePicker控件[1],有两种 *** 作模式:

1下拉式日历模式(缺省)—允许用户显示一种能够用来选择日期的下拉式日历。

2时间格式模式—允许用户在日期显示中选择一个字段(例如:月、日、年等等),按下控件右边的上下箭头来设置它的值。

可以自定义控件的下拉式日历的外观。

使用各种颜色属性,例如CalendarBackColor,CalendarForeColor,CalendarTitleBackColor,CalendarTitleForeColor和CalendarTrailingForeColor,允许创建属于您自己的颜色方案。

可以使用键盘或鼠标对控件进行浏览。下拉式日历有两个按钮使您能够滚动月份数据出入视图。

参考资料:

百度百科-SQL  百度百科-date   百度百科-DateTimePicker控件

以上就是关于在db2数据库如何转换从系统获取到的日期格式全部的内容,包括:在db2数据库如何转换从系统获取到的日期格式、数据库的日期型数据应该用什么类型接受、怎么设置oracle 时间格式的环境变量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9503235.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存