CONVERT函数

本文详细介绍了SQL中使用CONVERT函数进行日期与字符串类型转换的方法,包括不同格式样式对应的日期显示格式,并通过具体实例展示了如何应用这些格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-功能概述:CONVERT函数全部用法格式:CONVERT(data_type,expression[,style])说明:(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到的函数的3个参数,第1个参数为,转换后的大小,第2个为转换日期的字段或函数,第3个为转换的格式,具体如下:0| 0or 100| mon dd yyyy hh:miAM(或PM)1| 101| mm/dd/yy2| 102| yy-mm-dd3| 103| dd/mm/yy4| 104| dd-mm-yy5| 105| dd-mm-yy6| 106| dd mon yy7| 107| mon dd,yy8| 108| hh:mm:ss 9| 9or 109| mon dd yyyy hh:mi:ss:mmmmAM(或PM)10| 110| mm-dd-yy11| 111| yy/mm/dd12| 112| yymmdd 11|13or 113| dd mon yyyy hh:mi:ss:mmm(24小时制)14| 114| hh:mi:ss:mmm(24小时制)15| 20or 120| yyyy-mm-dd hh:mi:ss(24小时制)16| 21or 121| yyyy-mm-dd hh:mi:ss:mmm(24小时制) 具体例子:SELECT CONVERT(varchar(100),GETDATE(), 0):0516200610:57AMSELECT CONVERT(varchar(100),GETDATE(), 1):05/16/06SELECT CONVERT(varchar(100),GETDATE(), 2):06.05.16SELECT CONVERT(varchar(100),GETDATE(), 3):16/05/06SELECT CONVERT(varchar(100),GETDATE(), 4):16.05.06SELECT CONVERT(varchar(100),GETDATE(), 5):16-05-06SELECT CONVERT(varchar(100),GETDATE(), 6):160506SELECT CONVERT(varchar(100),GETDATE(), 7):0516,06SELECT CONVERT(varchar(100),GETDATE(), 8):10:57:46SELECT CONVERT(varchar(100),GETDATE(), 9):0516200610:57:46:827AMSELECT CONVERT(varchar(100),GETDATE(), 10):05-16-06SELECT CONVERT(varchar(100),GETDATE(), 11):06/05/16SELECT CONVERT(varchar(100),GETDATE(), 12):060516SELECT CONVERT(varchar(100),GETDATE(), 13):1605200610:57:46:937SELECT CONVERT(varchar(100),GETDATE(), 14):10:57:46:967SELECT CONVERT(varchar(100),GETDATE(), 20):2006-05-1610:57:47SELECT CONVERT(varchar(100),GETDATE(), 21):2006-05-1610:57:47.157SELECT CONVERT(varchar(100),GETDATE(), 22):05/16/0610:57:47 AM SELECT CONVERT(varchar(100),GETDATE(), 23):2006-05-16SELECT CONVERT(varchar(100),GETDATE(), 24):10:57:47SELECT CONVERT(varchar(100),GETDATE(), 25):2006-05-1610:57:47.250SELECT CONVERT(varchar(100),GETDATE(), 100):0516200610:57AMSELECT CONVERT(varchar(100),GETDATE(), 101):05/16/2006SELECT CONVERT(varchar(100),GETDATE(), 102):2006.05.16SELECT CONVERT(varchar(100),GETDATE(), 103):16/05/2006SELECT CONVERT(varchar(100),GETDATE(), 104):16.05.2006SELECT CONVERT(varchar(100),GETDATE(), 105):16-05-2006SELECT CONVERT(varchar(100),GETDATE(), 106):16052006SELECT CONVERT(varchar(100),GETDATE(), 107):0516,2006SELECT CONVERT(varchar(100),GETDATE(), 108):10:57:49SELECT CONVERT(varchar(100),GETDATE(), 109):0516200610:57:49:437AMSELECT CONVERT(varchar(100),GETDATE(), 110):05-16-2006SELECT CONVERT(varchar(100),GETDATE(), 111):2006/05/16SELECT CONVERT(varchar(100),GETDATE(), 112):20060516SELECT CONVERT(varchar(100),GETDATE(), 113):1605200610:57:49:513SELECT CONVERT(varchar(100),GETDATE(), 114):10:57:49:547SELECT CONVERT(varchar(100),GETDATE(), 120):2006-05-1610:57:49SELECT CONVERT(varchar(100),GETDATE(), 121):2006-05-1610:57:49.700SELECT CONVERT(varchar(100),GETDATE(), 126):2006-05-16T10:57:49.827SELECT CONVERT(varchar(100),GETDATE(), 130):18 ???? ??????142710:57:49:907AMSELECT CONVERT(varchar(100),GETDATE(), 131):18/04/142710:57:49:920AM



url:http://topic.youkuaiyun.com/u/20081130/21/7fe34ef4-e274-4fad-b113-acddfdd4f5ca.html

### Oracle 中 CONVERT 函数的用法 在 Oracle 数据库中,`CONVERT` 函数的主要功能是从一种字符集转换到另一种字符集。这一特性使得 `CONVERT` 成为了处理多语言环境和国际化数据的关键工具之一。 #### 基本语法 `CONVERT` 的标准语法如下所示: ```sql CONVERT(string, to_char_set [, from_char_set]) ``` - **string**: 需要被转换的字符串。 - **to_char_set**: 转换的目标字符集名称。 - **from_char_set (可选)**: 字符串当前所在的源字符集名称。如果未指定,则默认为数据库的国家字符集[^1]。 #### 示例代码 以下是一些常见的使用场景: ##### 将 UTF-8 编码的字符串转换为 GBK 编码 ```sql SELECT CONVERT('你好', 'ZHS16GBK', 'AL32UTF8') AS converted_string FROM DUAL; ``` 这条 SQL 语句会将字符串 `'你好'` 从 AL32UTF8(Oracle 对 UTF-8 的内部编码方式)转换为 ZHS16GBK(GB18030 的变体)。注意这里的字符集名可能因具体版本而异[^2]。 ##### 不显式声明源字符集的情况 当省略第三个参数时,默认采用数据库的国家字符集作为输入字符集: ```sql SELECT CONVERT('测试', 'WE8ISO8859P1') AS result FROM DUAL; ``` #### 替代方案:NLS_CONVERT 自 Oracle 12c 开始,官方推荐使用更稳定的 `NLS_CONVERT` 来代替 `CONVERT`。两者的语法几乎一致,但后者被认为更适合现代应用需求。 ```sql NLS_CONVERT(string, dest_charset_name[, source_charset_name]); ``` 例如: ```sql SELECT NLS_CONVERT('こんにちは', 'SJIS', 'UTF8') FROM DUAL; ``` 此查询实现了日文字符串由 UTF-8 到 Shift_JIS 的转变[^2]。 #### 性能考量 尽管 `CONVERT` 和 `NLS_CONVERT` 提供了强大的跨字符集操作能力,然而频繁调用它们可能导致性能下降,尤其是在大规模批量处理过程中。因此,在规划阶段就应当尽量减少必要的字符集变换次数[^2]。 --- ### Python 中类似的 Convert 方法 虽然题目主要围绕着 Oracle 的 `CONVERT` 讨论,但也提到了 Python 下的一些情况。实际上,Python 并无直接对应的内置函数名为 `convert` ,不过我们可以借助第三方库完成相似的任务比如时间戳与时区之间的相互转化等。 #### Pandas 时间序列转换实例 利用 pandas 库中的 `.tz_convert()` 可改变现有 DatetimeIndex 所属的时区而不修改实际的时间点数值。 ```python import pandas as pd # 创建带有时区信息的数据索引 index_ = pd.DatetimeIndex(['2023-07-01 12:00:00'], tz='UTC') # 转换至新的时区 Asia/Shanghai converted_index = index_.tz_convert('Asia/Shanghai') print(converted_index) ``` 上述脚本展示了如何把 UTC 时间调整为中国标准时间 CST[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值