我在SQL DB中有一个变量“month”,有两种不同的格式:yyyy-mm
和yyyy-m
(例如,2015-11,2016-1)。当我尝试对“月份”(升序或降序)进行排序时,由于此格式不同而无法正常显示。如何将yyyy-m
格式更改为yyyy-mm?
答案 0 :(得分:0)
如果您可以确定它永远不会是那些精确格式以外的任何其他格式,您可以在字符串中的已知点插入零 -
SELECT MonthField,
CASE WHEN LEN(MonthField)=6 THEN
LEFT(MonthField,5)+'0' + RIGHT(MonthField,1)
ELSE MonthField
END AS MonthField_Cleaned
FROM SourceTable
但是,如果可能的话,你最好清理任何创建数据的东西,理想情况下将数据存储为实际日期而不是代表月份的字符串,以确保它们不会混淆,你可以使用DBMS'日期操纵功能。