在SQL中更改日期格式

问题描述:

我在SQL DB中具有2种不同格式的变量“month”:yyyy-mmyyyy-m(例如2015-11,2016-1)。如何将yyyy-m格式更改为yyyy-mm?在SQL中更改日期格式

+2

因此我们需要使用数据类型**日期** –

+4

您使用的是什么RDBMS? –

+0

使用'date'数据类型,你永远不会有这样的问题。 – jarlh

如果您可以确定它永远不会成为任何东西除了那些确切的格式,你可以在字符串中的一个已知点插入一个零 -

SELECT MonthField, 
     CASE WHEN LEN(MonthField)=6 THEN 
      LEFT(MonthField,5)+'0' + RIGHT(MonthField,1) 
      ELSE MonthField 
     END AS MonthField_Cleaned 
FROM SourceTable 

但是,如果可能的话,你会更好的清洗无论是创造的数据,最好数据存储为实际日期而不是表示月份的字符串,以确保它们不会混淆,并且您可以使用DBMS的日期操作函数。

+0

请告诉我们哪些dbms可以使用。 – jarlh

+0

这将是MSSQL代码。从我和MySQL一起工作了一段时间,但它与内存非常相似。 – eftpotrm