SQL中的日期转换

时间:2016-06-18 09:39:36

标签: sql datetime time sql-server-2014

我的数据库中有以下格式的日期。

10/16 - mm/yy

我需要将其转换为:

October/16

这可能吗?

如果不可能那么请告诉我原因。

4 个答案:

答案 0 :(得分:1)

这不是约会,它错过了一天,这是存储年/月的坏方法。应该有一个4位数的年份以避免混淆,应该首先列出年份以实现正确的排序,例如'2016/10'或数字201610

您可以先将其投放到DATE,然后使用FORMAT仅显示月/年:

set dateformat myd;
select format(cast(mystupidcolumn + '/1' as date), 'MMMM/yy') 

或SUBSTR月份部分并使用CASE。

答案 1 :(得分:0)

是的,你可以,它取决于你用来调用日期函数的数据库 如果您列为日期时间格式

  • SQL server DATENAME(Month, GETDATE())
  • MySQL数据库MONTHNAME(now())

,否则  转换它将在您选择的数据库或代码逻辑    在enum月分割值和查找,或者假定要接受的日期和完整的日期格式,如01/10/16

所以做SELECT DATENAME(Month, datecolumn) + '/' + YEAR (datecolumn)

之类的事情

您也可以使用而不是Year函数DATEPART(yy,datecolumn) 你使用格式的方式看起来像 CONVERT(VARCHAR(11),GETDATE(),106) 但除了获得月份JUN

的前3个字符外

答案 2 :(得分:0)

尝试这种格式,

SELECT DATENAME(month, DATEADD(month, @mydate-1, CAST('2008-01-01' AS datetime)))

答案 3 :(得分:0)

您可以使用此代码

显示日期
select datename(month, YourColumnName) + '/' + right(YEAR(YourColumnName),2) 
FROM   yourTableName

只需使用表格列的名称更改yourColumnName,使用表格名称更改yourTableName