`
xo_tobacoo
  • 浏览: 391993 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

informix中的to_date

阅读更多

和oracle中差别太大,记下。网上绝对很难搜到

 

 

TO_CHAR 函数(IDS)

TO_CHAR 函数将计算为 DATE、DATETIME 或数值的表达式转换为字符串。返回的字符串代表第一个参数指定的数据值,使用第二个参数 format_string 参数指定的格式化掩码。

此函数的第一个参数必须是 DATE、DATETIME 或内置数字数据类型,或者是可以转换成这些数据类型之一的字符串。如果初始 DATE、DATETIME 或数字参数是 NULL,那么该函数返回 NULL 值。

此函数的第二个参数是指定格式化掩码的字符串。哪些字符适合该格式化掩码主要取决于 TO_CHAR 函数的第一个参数代表时间点还是数字。

  • 格式化 DATE 和 DATETIME 表达式

format_string 参数不需要隐含与 TO_CHAR 函数第一个参数的值相同的时间单位。当 format_string 中隐含的精度与第一个参数中的 DATETIME 限定符不同时,TO_CHAR 函数将扩展 DATETIME 值,如同其已经调用了 EXTEND 函数。

在下面的例子中,用户要把 tab1 表的 begin_date 列转换成字符串。begin_date 列定义为 DATETIME YEAR TO SECOND 数据类型。用户使用带有 TO_CHAR 函数的 SELECT 语句来执行此转换:

SELECT TO_CHAR(begin_date, '%A %B %d, %Y %R') FROM tab1;

在这个例子里面 format_string 参数中的符号具有下列含义。

符号
含义
%A
语言环境中定义的完整 weekday 名
%B
语言环境中定义的完整月份名
%d
用十进制数表示的每个月的日期
%Y
用 4 位十进制数表示的年份
%R
24 小时表示法的时间

请注意,在此示例中跟在 %d 规范后面的逗号(, )是文字字符,而不是 TO_CHAR 函数参数的分隔符。有关 DATE 和 DATETIME 格式符号和其含义的完整列表,请参阅《IBM Informix GLS 用户指南》 中的 GL_DATEGL_DATETIME 环境变量。

将此 format_string 应用到 begin_date 列会返回此结果:

Wednesday July 25, 2007 18:45

下面示例中的查询调用了 TO_CHAR ,将同一格式字符串应用到一个 ADD_MONTHS 表达式中,并且显示该查询的结果:

SELECT ship_date, TO_CHAR(ADD_MONTHS(ship_date, 1), '%A %B %d, %Y')
AS survey_date FROM orders;


ship_date    03/12/2007
survey_date  Thursday April 12, 2007

当 DATETIME 或 DATE 表达式是第一个参数时,如果省略 format_string 参数,TO_CHAR 函数将缺省使用 DBTIMEDBDATE 环境变量的设置,来格式化第一个参数中出现的值。在非缺省语言环境中,DATETIME 和 DATE 值的缺省格式由环境变量指定(例如,GL_DATETIMEGL_DATE )。

  • 格式化数字和 MONEY 表达式

TO_CHAR 函数的 format_string 参数支持用于 ESQL 函数(例如,rfmtdec( )rfmtdouble( )rfmtlong( ) )的相同数字格式化掩码。在 IBM Informix ESQL/C Programmer's Manual 中有对数值的 IDS 数字格式化掩码(当将数字表达式格式化为字符串时)的详细描述。下面是对格式化掩码的简短摘要描述。

数字格式化掩码指定将数字表达式格式化为字符串时应用于某些数值的格式。此掩码是以下格式字符的组合:

符号
含义
*
此字符将用星号填充显示字段中本来为空的所有位置
&
此字符将用零填充显示字段中本来为空的所有位置
#
此字符将开始零更改为空格。使用此字符可以指定某个字段的向左侧的最大扩展。
<
此字符对显示字段中的数字进行左调整。它将开始零更改为空字符串。
,
此字符指明对值的整数部分进行分组(按三位为一组)的符号(从单位位置向左计算)。缺省情况下,此符号为逗号。可以用 DBMONEY 环境变量设置此符号。在格式化数字中,仅当值的整数部分有四位或更多数位时才显示此符号。
.
此字符指明将货币值整数部分与小数部分分隔的符号。缺省情况下,此符号为句点。可以用 DBMONEY 环境变量设置此符号。一个格式字符串只能有一个句点。
-
此字符为文字字符。当 expr1 小于零时,该字符显示为减号。当您将几个减号组织在一行中时,一个减号将浮动到它能占据的最右边的位置;它不影响该数字及其货币符号。
+
此字符为文字字符。当 expr1 大于或等于零时,该字符显示为加号,当 expr1 小于零时显示为减号。当您将几个加号组织在一行中时,一个加号或减号将浮动到它能占据的最右边的位置;它不影响数字及其货币符号。
(
此字符为文字字符。它显示为负数左边的左圆括号。该字符是替换负数减号的一对圆括号之一。当您将几个左圆括号组织在一行中时,一个左圆括号将浮动到它能占据的最右边的位置;它不影响数字及其货币符号。
)
这是替换负数减号的一对圆括号之一。
$
此字符显示在数值前面的货币符号。缺省情况下,货币符号为美元符号($)。 可以使用 DBMONEY 环境变量设置货币符号。当您将几个美元符号组织在一行中时,一个美元符号将浮动到它能占据的最右边的位置;它不影响该数字及其货币符号。

格式化掩码中的其他任何字符在 TO_CHAR 函数返回的格式化值中重新按字面生成。

在下面三个示例中,TO_CHAR 函数 d_int 列表达式参数的值为 -12344455

此查询在 TO_CHAR 调用中没有指定格式化掩码:

SELECT TO_CHAR(d_int) FROM tab_numbers;

下表显示了此 SELECT 语句的输出。

(表达式)
-12344455

以下查询指定了一个货币格式化掩码:

SELECT TO_CHAR(d_int, "$*********.**") FROM tab_numbers;

下表显示了此 SELECT 语句的输出。

(表达式)
$12344455.00
SELECT TO_CHAR(d_int, "-$*********.**") FROM tab_numbers;

查询返回 - $12344455.00

SELECT TO_CHAR(12344455,"-$*********.**") FROM tab_numbers;

下表显示了此 SELECT 语句的输出。

(常量)
$12344455.00

应用了格式化掩码参数中的货币符号($ ),但是减号(- )不起作用,因为第一个参数的值大于零。

请注意,仅当 TO_CHAR 函数的第一个参数是 DATE 或 DATETIME 表达式时,该函数才是时间表达式。当其第一个参数是数值或货币值,TO_CHAR 返回此参数值的字符串形式,但它不返回时间表达式。

TO_DATE 函数(IDS)

TO_DATE 函数将字符串转换成 DATETIME 值。这个函数根据 format_string 参数指定的格式,把 char_expression 参数评估为日期,并返回等价的日期值。如果 char_expression 为 NULL,那么将返回 NULL 值。

TO_DATE 函数的任何参数必须是内置数据类型。

如果省略 format_string 参数,那么 TO_DATE 函数会对 DATETIME 值应用缺省 DATETIME 格式。缺省 DATETIME 格式由 GL_DATETIME 环境变量指定。

在以下示例中,用户想要将字符串转换成 DATETIME 值,以便使用转换而来的值更新 tab1 表的 begin_date 列。begin_date 列定义为 DATETIME YEAR TO SECOND 数据类型。用户使用包含 TO_DATE 函数的 UPDAE 语句来完成此结果:

UPDATE tab1
   SET begin_date = TO_DATE
('Wednesday July 25, 2007 18:45',
   '%A %B %d, %Y %R');
分享到:
评论
1 楼 jspc 2011-12-19  
是的,朋友,关于这个是很难搜索的,谢谢分享

相关推荐

    INFORMIX_ORALCE_SQLDA

    ### INFORMIX与ORACLE数据库中的SQLDA结构详解 #### 一、概述 在数据库迁移过程中,特别是将INFORMIX数据库迁移到ORACLE数据库时,理解SQLDA(SQL Descriptor Area)结构至关重要。本文旨在深入探讨INFORMIX和...

    informix和oric不同

    TO_CHAR(TO_DATE(sampling_date, 'YYYYMMDD'), 'FMDAY') = '星期六' ``` **Informix:** - 使用`WEEKDAY`函数。 ```sql WEEKDAY(TO_DATE(sampling_date, 'YYYYMMDD')) = 6 ``` #### 七、DUAL的使用 **Oracle:...

    Oracle与Informix函数比较.doc

    2. 将日期字符串转换为日期类型:Informix 中的 dateto_char 函数可以将日期字符串转换为日期类型,而 Oracle 中的 to_date 函数可以实现相同的功能。 3. 获取指定日期的月份:Informix 中的 month 函数可以获取...

    informix函数使用手册--1224

    - 日期运算示例:`let tmp_date = today + 3 UNITS day` 加上3天,`let tmp_date = MDY(10,30,2002)` 创建日期2002-10-30,`let tmp_date = today + interval(7) day to day` 加上7天。 - `EXTEND` 函数可以用于转换...

    Informix函数大全

    13. **TO_CHAR(date_time)**:将日期时间值转换为字符格式。 - 例如:`SELECT TO_CHAR('2023-01-01 12:00:00', 'YYYY-MM-DD HH:MI:SS') FROM table_name;` 14. **TO_DATE(char_expr, format)**:将字符表达式转换...

    一些Informix SQL函数的用法

    在Informix数据库系统中,SQL函数是用于处理数据的强大工具,可以帮助用户进行各种计算和转换。以下是对标题和描述中提到的一些Informix SQL函数的详细解释: **内部函数** 1. **内部合计函数** - **COUNT(\*)**:...

    数据转换(oracle,mysql,informix,sqlserver)(函数,处理过程)

    例如,`TO_CHAR`用于将数值转换为字符串,`TO_DATE`则将字符串转换为日期格式。在数据处理过程中,可以使用PL/SQL过程和函数来创建自定义的转换逻辑,如用户定义的类型转换函数。 MySQL作为开源的关系型数据库,...

    Informix SQL 语句详解

    CREATE TABLE user (c0 serial NOT NULL, c1 char(10), c2 char(2), c3 smallint, c4 decimal(6,3), c5 date) IN “/usr/john/customer.dbs/user” ``` 六、修改表结构 ALTER TABLE 语句用于修改表结构。语法如下:...

    informix sql 函数使用总结

    - **TO_CHAR()** 和 **TO_DATE()**:前者用于将日期时间值转换为字符串格式,后者则相反。 - **示例**: - `let tmp_date = today + 3 UNITS day`:将今天的日期加上3天。 - `let tmp_date = MDY(10, 30, 2002)`...

    informix sql函数使用说明大全

    10. **DATE_TIME(date/datetime_expression first to last)**:处理日期时间表达式。 11. **INTERVAL(date/datetime_expression first to last)**:处理日期时间间隔。 12. **EXTEND(date/datetime_expression ...

    INFORMIX函数大全

    在INFORMIX数据库中,支持多种数据类型,这些数据类型根据不同的应用场景被设计出来,确保数据能够高效且准确地存储。 - **BYTE**: 用于存储任何形式的二进制数据。 - **CHAR(n)** 和 **CHARACTER(n)**: 存储固定...

    informix函数使用

    内部函数是 Informix 中的一种基本函数,用于对数据库中的数据进行操作。 1. COUNT 函数:返回指定列中的行数。 2. COUNT(DISTINCT COLNAME) 函数:返回指定列中唯一值的个数。 3. SUM 函数:返回指定列或表达式中...

    informix 函數匯總

    - `TO_DATE('1978-10-07 10:00', 'YYYY-MM-DD HH:MI')` 将字符串转换为 `DATETIME` 类型。 #### 基数函数 基数函数用于处理集合元素的数量: - **cardinality**: (仅适用于 IDS) 对集合包含的元素数目计数。 ##...

    从informix迁移到oracle

    "从Informix迁移到Oracle" 本文档详细介绍了Oracle数据库迁移工具(OMWB)的使用,为把历史数据从Informix迁移到Oracle的用户提供了少走弯路的途径。通过使用OMWB,可以将数据从Informix迁移到Oracle,整个迁移过程...

    informix相关资料

    转换函数如TO_CHAR()、TO_DATE()用于数据类型的转换。 总的来说,这个资料包对于想学习或已经在使用Informix的人非常有价值,它覆盖了从基本的SQL语法到高级特性的方方面面,还有实用的函数库作为参考。通过学习...

    infoxmix日期比较

    例如,`To_Date("1978-10-07 10:00", "%Y-%m-%d %H:%M")`将字符串"1978-10-07 10:00"按照指定的格式转换为日期时间类型。 - **注意**:这里的格式符`"%Y-%m-%d %H:%M"`指定了输入字符串的具体格式,包括年、月、日...

    informix学习总结

    Informix 学习总结 Informix 是一个关系数据库管理系统,它提供了多种数据类型、游标、存储...Informix 学习总结涵盖了多种数据类型、字符串操作函数、定长串操作函数、字符串函数、DATE 类型的函数等多方面的知识点。

    informix 经典详解SQL

    在IT行业中,数据库管理系统是核心组成部分之一,Informix作为一个高效且功能强大的关系型数据库系统,其SQL语言的掌握对于开发者来说至关重要。以下是对标题“informix 经典详解SQL”和描述中的关键知识点的详细...

    informix语句详解

    - **示例**: `CREATE TABLE user (c0 SERIAL NOT NULL, c1 CHAR(10), c2 CHAR(2), c3 SMALLINT, c4 DECIMAL(6,3), c5 DATE) IN "/usr/john/customer.dbs/user";` #### 6. ALTER TABLE 表名称 {ADD (新列名称 新列...

    Informix的字段类型&常用sql语句.doc

    7. interval:用于指定一个时间跨度,例如 year to month、hour to minute。 8. date:日期型,每行固定为 10 字节长度。 9. datetime:日期时间型,每行固定为 8 字节长度。 10. integer:保存整型数据,范围为-...

Global site tag (gtag.js) - Google Analytics