我们有一个名称为target_date的字段。这是一个字符串。我们需要从该字段中提取月份和年份。
实施例: 1/10/2011(日/月/年) 我们正在尝试
substring(target date,findstring(targetdate,"/",1)+1,(findstring(targetdate,"/",2)-findstring(targetdate,"/",1)+1)).
请帮帮我。
感谢。
答案 0 :(得分:5)
嗯,这里的第一个问题是你将datetime存储为字符串。我会假设无论出于什么原因你无法解决这个问题......
在这种情况下,我要做的是使用convert()
功能
convert(datetime, target_date, 103)
然后使用month()
和year()
答案 1 :(得分:4)
-- this will give you the month of your target_date
datePart(mm, convert(datetime, target_date, 103))
-- this will give you the year of your target_date
datePart(yyyy, convert(datetime, target_date, 103)) -- 2011
-- or
datePart(yy, convert(datetime, target_date, 103)) -- 11
答案 2 :(得分:2)
declare @date varchar(10)
set @date = '1/10/2011'
select DATEPART(yyyy, CONVERT(datetime, @date, 103)), DATEPART(mm, CONVERT(datetime, @date, 103))
答案 3 :(得分:0)
试试这个:
Month : left(right(target_date , 7),2)
Year: right(target_date , 4)
这是因为target_date的格式总是相同的(即.dd / mm / yyyy)