sql中如何在where字句里截取某个字段的前几位字符

如where p.end_time.substring(0,3) = '2012',想表达意思是这样,但写法是错的,p.end_time里的数据是2012/12/11

sql中在where字句里截取字符方法如下:

1、如果是sqlserver:where left(p.end_time,4) = '2012'。

2、如果是Oracle:where substr(p.end_time,0,4) = '2012'。

举例:

1、oracle: 'where substr(字段名,1,2)='''123''''

2、sqlserver: 'where substring(字段名,1,2)='''123''''

扩展资料:

sql中,常用函数介绍:

1、AVG():返回平均值

2、COUNT():返回行数

3、FIRST():返回第一个记录的值

4、LAST():返回最后一个记录的值

5、MAX():返回最大值

6、MIN():返回最小值

7、SUM():返回总和

8、UCASE():将某个字段转换为大写

9、LCASE():将某个字段转换为小写

10、MID():从某个文本字段提取字符

11、LEN():返回某个文本字段的长度

12、ROUND():对某个数值字段进行指定小数位数的四舍五入

13、NOW():返回当前的系统日期和时间

14、FORMAT():格式化某个字段的显示方式

15、INSTR():返回在某个文本域中指定字符的数值位置

16、LEFT():返回某个被请求的文本域的左侧部分

17、RIGHT():返回某个被请求的文本域的右侧部分

参考资料来源:百度百科-SQL函数

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-30

sql中在where字句里截取字符方法如下:

1、如果是sqlserver:where left(p.end_time,4) = '2012'。

2、如果是Oracle:where substr(p.end_time,0,4) = '2012'。

举例:

1、oracle: 'where substr(字段名,1,2)='''123''''


2、sqlserver: 'where substring(字段名,1,2)='''123''''

本回答被网友采纳
第2个回答  推荐于2018-02-27
如果是sqlserver:

where left(p.end_time,4) = '2012'

如果是Oracle:
where substr(p.end_time,0,4) = '2012'本回答被提问者和网友采纳
第3个回答  2012-10-29
改成下面这样就可以了
where LEFT(p.end_time.substring,4)='2012'
第4个回答  2017-08-24
我的Oracle要改为这样才能查到值:
where substr(p.end_time,1,4) = '2012'

sql中如何在where字句里截取某个字段的前几位字符
sql中在where字句里截取字符方法如下:1、如果是sqlserver:where left(p.end_time,4) = '2012'。2、如果是Oracle:where substr(p.end_time,0,4) = '2012'。举例:1、oracle: 'where substr(字段名,1,2)='''123'''2、sqlserver: 'where substring(字段名,1,2...

sql截取指定字符前面?
SQL查询的时候截取字段在逗号前的部分1、查询数据库表所有的字段,直接利用select语句。2、查询数据库表部分字段,可以利用select字段命令,select字段名from数据库表。3、按照条件查询,利用where后面加条件,select字段名from数据库表where条件。4、查询数据库字段记录不重复的结果,利用distinct?命令。5、查...

sql截取特定字符前的数据
在SQL中,截取特定字符前的数据通常可以通过`LEFT`函数结合`CHARINDEX`(在某些数据库如SQL Server中)或`INSTR`(在MySQL中)等函数来实现。具体方法取决于你所使用的数据库系统。以SQL Server为例,如果你想从一个字符串字段中截取某个特定字符(比如逗号`','`)前的所有数据,你可以使用`LEFT`函数...

SQL 查询的时候截取字段在逗号前的部分
可以使用substring_index(column, ',', 2)方法来实现。具体SQL语句为:select id,name,substring_index(address, ',', 2) from people;substring_index(address, ',', 2)的意思是截取第二个 ',' 之前的所有字符。

如何利用SQL语句在字符列取任意字符前(或后)几个字符,如:“重庆市江津...
insert into @t select 1 ,'四川省文安市苹果镇桃子乡山村'union select 2, '广东中山市小榄镇团结村11大队'union select 3, ''select * from @t select [id], LEFT(addr, case when CHARINDEX('镇',addr,1)>1 then CHARINDEX('镇',addr,1)-1 else 0 end ) as 镇前面的任意字符 fro...

oracle sql 取字段前几位?
substr('Hello World',0,1) \/\/返回结果为 'H' ,从字符串第一个字符开始截取长度为1的字符串。另外还有以下建议:select * from table where substr('字段a',2,3)='abc'。substr(字段, 起始位, 长度)。sample只对单表生效,不能用于表连接和远程表。sample会使SQL自动使用CBO。延展内容:...

sql 在oracle中取字段前几位并作为条件
substr('Hello World',0,1) \/\/返回结果为 'H'从字符串第一个字符开始截取长度为1的字符串 select * from table where substr('字段a',2,3)='abc'

sql中取编号的前六位怎么做?
select top 6 from (select from 表 where 编号>9 编号 Desc) b

SQL Server中使用SQL语句取各分类中的前几条记录
)要求取相同PO_NO按Trans_Date倒序排序的前两条记录。1.Where子句嵌套SELECT的方式。在嵌套的SELECT语句中可以与主表的字段相关联,达到分类的目的。这种方式又有三种写法:1)如果表中有主键,可以用IN的方式。SELECT * FROM tmp_Trans t WHERE ID IN(SELECT TOP 2 ID FROM tmp_Trans WHERE PO_...

sql2005 查询表中某个字段的的前4位
如果是bigint类型则使用沉默用户的答案,如果是varchar等字符串类型的话,使用left函数比较,如 where left(Num,4)=='2301'

相似回答