如何从Varchar类型的SQL中获取月份和年份

时间:2019-06-09 16:52:31

标签: sql tsql

我已经创建了表格(商业)列( MyDate )“ Varchar(255)”

我有一些手动输入,例如:

dd-mm-yyyy
01-05-2019
02-05-2019
15-06-2019
16-06-2019

现在我想选择“仅一个月和一年”。喜欢

05-2019 or 06-2019

请告诉我如何从此列中仅选择月份和年份。

3 个答案:

答案 0 :(得分:1)

您不需要在数据类型之间进行任何转换,因为您要从字符串中提取字符串,并以mm-yyyy格式模式提取部分,只需使用substring()函数,如下所示:< / p>

select distinct substring(replace(MyDate,' ',''), 4, 7) as "Month-Year"
  from myTable;

Month-Year
----------
05-2019
06-2019

顺便说一句,考虑使用replace(MyDate,' ','')(对于2017+版的trim(MyDate) )来避免字符串中有空格的可能性。

答案 1 :(得分:0)

使用字符串操作:

select right(col, 4) as yyyy,
       right(col, 7) as mmyyyy,
       substring(col, 4, 2) as mm

答案 2 :(得分:0)

仅对您的数据的MM-YYYY部分使用DISTINCT将根据您的要求仅返回一次MM-YYYY组合。示例脚本如下所示-

SELECT DISTINCT RIGHT(MyDate, 7)
FROM commercials