如何用sql查询一个字符串的一部分

例如:2009/2/5我如何用sql查询到2009/2,不显示"/5"
能不能不用取字段长度的,要是从数据库中取多条记录,长度就变化了啊,能用遍历的方法么。

substring('2009/2/5',1,6)
SUBSTRING (<expression>, <starting_ position>, length)
返回从字符串左边第starting_ position 个字符起length个字符的部分。

left('2009/2/5',6)
LEFT (<character_expression>, <integer_expression>)
返回character_expression 左起 integer_expression 个字符。
----------------------------------------------------------
CONVERT(varchar(7), CONVERT(datetime, '2009/2/5'), 120)
返回结果 2009-02

REPLACE(CONVERT(varchar(7), CONVERT(datetime, '2009/2/5'), 120), '-', '/')
返回结果 2009/02

CONVERT(varchar(7), CONVERT(datetime, '2009/12/5'), 120)
返回结果 2009-12

REPLACE(CONVERT(varchar(7), CONVERT(datetime, '2009/12/5'), 120), '-', '/')
返回结果 2009/12
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-03-05
select substr('2009/2/5',1,6) from table_name

substr(A,m,n)函数,是将字段A从第m个字符截取n个字符。
第2个回答  2009-03-05
单纯用left或者substring是行不同的
比如说2009/12/15,那你是取6个字符 还是5个字符呢?
第3个回答  2009-03-05
你试下这条语句 看是不是你要的效果
select replace(convert(varchar(7), convert(datetime, '2009/12/5'), 120), '-', '/')

如果是的 用下面的 sql 试下
select replace(convert(varchar(7), convert(datetime, 字段名), 120), '-', '/')
from 表名
第4个回答  2009-03-05
select substr('2009/2/5',1,6) from dual
相似回答