sql server-将日期从mm/yyy转换为yyyymmgg

sql server-将日期从mm/yyy转换为yyyymmgg,sql,sql-server,date,data-conversion,Sql,Sql Server,Date,Data Conversion,我有一列的日期如下:mm/yyyy,用于istance: 02/2022 12/2099 ... 我需要把它们转换成YYYYMMGG格式,gg应该是那个月的最后一天,你能帮我吗? 我可以按左(日期,2)和右(日期,5)获取月份和年份,如何找到正确的日期,尤其是二月?您可以使用一些字符串操作和convert()将日期转换为日期。然后只需使用eomonth(): 我建议您将该值保留为日期。当然,如果您真的需要,您可以将其转换回字符串。您可以使用一些字符串操作和convert()将其转换为日期。然后

我有一列的日期如下:mm/yyyy,用于istance:

02/2022
12/2099
...
我需要把它们转换成YYYYMMGG格式,gg应该是那个月的最后一天,你能帮我吗?
我可以按左(日期,2)和右(日期,5)获取月份和年份,如何找到正确的日期,尤其是二月?

您可以使用一些字符串操作和
convert()
将日期转换为日期。然后只需使用
eomonth()


我建议您将该值保留为日期。当然,如果您真的需要,您可以将其转换回字符串。

您可以使用一些字符串操作和
convert()
将其转换为日期。然后只需使用
eomonth()


我建议您将该值保留为日期。当然,如果您真的需要,您可以将其转换回字符串。

有一个字符串,即使您的案例不需要它(因为有
DATEADD
,并且2月的最后一天是3月的第一天之前)。这只是一个字符串,而不是日期。日期没有格式,它们是二进制值。在极少数情况下,您需要存储一个字符串,例如,使用
YYYYMM
YYYY-MM
进行适当的排序和索引。更好的方法是将日期存储为日期,并使用a查找年、月、季度、月初或月底值等。这使得查询和分组更加容易,即使您的案例不需要它(因为有
DATEADD
,并且2月的最后一天是3月1日之前的一天)。这只是一个字符串,不是日期。日期没有格式,它们是二进制值。在极少数情况下,您需要存储一个字符串,例如,使用
YYYYMM
YYYY-MM
进行适当的排序和索引。更好的方法是将日期存储为日期,并使用a查找年、月、季度、月初或月底值等。这使得查询和分组更加容易
select eomonth(convert(date, '01/' + mmyyyy, 103))