sql语句 截取时间 只显示 年,月,日的格式

本文介绍如何使用SQL语句对日期时间进行格式化处理,重点展示了多种日期格式的转换方法,如仅保留年月日部分或其他特定格式。

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

摘自http://blog.sina.com.cn/zhm85

SQL语句截取时间,只显示年月日(2004-09-12)

select CONVERT(varchar, getdate(), 120 )


‘getdate()’改为时间字段名‘createtime’
再重命名新加列(Select Name AS UName from Users)

例如 select convert(varchar(11),createtime,120) as Ndate from UserS

 

日期截取显示格式
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08

select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),/'-/',/'/'),/' /',/'/'),/':/',/'/')
20040912110608

select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12

select CONVERT(varchar(12) , getdate(), 112 )
20040912

select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12

select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004

select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004

select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004

select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004

select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004

select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004

select CONVERT(varchar(12) , getdate(), 108 )
11:06:08

select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1

select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004

select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1

select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177

<think>好的,我现在需要帮助用户解答关于SQL中字符串截取的方法、函数和示例。首先,我得回忆一下用户提供的引用内容,确保答案准确。 用户提到了三个引用,其中引用[1]详细介绍了substr()函数的用法,包括参数和示例。引用[2]补充了SQL Server中的字符串处理函数,而引用[3]则给出了substring的具体例子,尤其是负数作为起始位置的情况。 首先,我应该确认主要的字符串截取函数是什么。根据引用[1]和[3],substr和substring都可以使用,可能不同数据库系统有不同的函数名。比如,SQL Server可能使用substring,而Oracle使用substr。需要指出这一点,避免用户混淆。 接下来,要详细说明每个函数的参数。例如,substr(expression, start, length),其中start可以是正数或负数,负数表示从末尾开始。引用[3]中的例子说明了负数的情况,比如substring(name, -4, 2),从倒数第四个字符开始截取两个字符。这点很重要,需要举例说明。 然后,用户可能需要不同数据库系统的示例。比如,在MySQL中使用substring,而Oracle使用substr。需要分别给出例子,如截取前三个字符,中间部分,末尾部分等。同时,注意是否需要处理长度超出字符串的情况,比如如果start超过字符串长度,可能返回空字符串。 另外,引用[2]提到还有其他函数,如left()和right(),这些在SQL Server中可用,但可能在其他数据库中不适用。需要简要提及这些函数,但主要关注substr/substring,因为用户的问题集中在截取方法上。 还需要注意语法格式是否正确,比如使用$...$来包裹数学表达式,但这里可能不需要数学公式,主要是代码示例。但用户提到的是SQL函数,所以应该用代码块展示示例,如使用反引号包裹SQL语句。 最后,生成相关问题,可能涉及不同数据库的区别、处理超长字符串、性能优化等,确保问题与主题相关,并帮助用户进一步学习。 需要检查是否所有信息都覆盖了用户的引用内容,没有遗漏关键点。同时,确保回答结构清晰,分点说明,并给出具体的示例,这样用户能更容易理解和应用。</think>在SQL中,字符串截取主要通过`SUBSTR()`或`SUBSTRING()`函数实现,不同数据库系统语法略有差异。以下是具体方法和示例: --- ### 1. **`SUBSTR()`函数** #### 语法格式 ```sql SUBSTR(expression, start [, length]) ``` - **参数说明**: - `expression`:需要截取的字符串或字段[^1] - `start`:起始位置(正数从左开始,负数从右开始)[^3] - `length`(可选):截取长度,若省略则截取到字符串末尾 #### 示例 - **截取前3个字符** ```sql SELECT SUBSTR('HelloWorld', 1, 3) AS result; -- 输出'Hel' ``` - **从第4个字符截取到末尾** ```sql SELECT SUBSTR('HelloWorld', 4) AS result; -- 输出'loWorld' ``` - **从倒数第4个字符开始截取2个字符** ```sql SELECT SUBSTR('HelloWorld', -4, 2) AS result; -- 输出'oW'[^3] ``` --- ### 2. **`SUBSTRING()`函数(SQL Server)** #### 语法格式 ```sql SUBSTRING(expression, start, length) ``` - **参数说明**:与`SUBSTR()`类似,但`start`必须为正数[^2] #### 示例 ```sql SELECT SUBSTRING('Database', 3, 4) AS result; -- 输出'taba' ``` --- ### 3. **其他辅助函数** - **`LEFT()`/`RIGHT()`**(截取左/右侧指定长度字符) ```sql SELECT LEFT('SQL Tutorial', 3) AS result; -- 输出'SQL' SELECT RIGHT('SQL Tutorial', 4) AS result; -- 输出'rial'[^2] ``` --- ### 常见应用场景 1. 提取身份证号中的生部分:`SUBSTR(id_card, 7, 8)` 2. 截取文件路径中的文件名:`SUBSTR(path, -POSITION('/' IN REVERSE(path)) + 1)` 3. 动态生成缩写:`LEFT(name, 1) + SUBSTR(name, POSITION(' ' IN name) + 1, 1)` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值