Sql查询从datetime获取月份

Sql查询从datetime获取月份,sql,Sql,我有一个带有发票和创建日期时间的DB,我想根据每个发票的日期,创建一个带有月份名称的新列。我的意思是,如果日期是2013年1月15日,我想在新科伦柱上写上“一月”。 提前感谢,我对sql知之甚少。如果您的数据库是MySQL,请尝试: DATE_FORMAT(date, '%M') 供MS SQL Server使用 SELECT DATENAME(MONTH,invoiceDate) 从datetime对象中提取月份,然后在CASE语句中使用它 INSERT INTO TABLE newTab

我有一个带有发票和创建日期时间的DB,我想根据每个发票的日期,创建一个带有月份名称的新列。我的意思是,如果日期是2013年1月15日,我想在新科伦柱上写上“一月”。
提前感谢,我对sql知之甚少。

如果您的数据库是MySQL,请尝试:

DATE_FORMAT(date, '%M')
供MS SQL Server使用

SELECT DATENAME(MONTH,invoiceDate)

从datetime对象中提取月份,然后在CASE语句中使用它

INSERT INTO TABLE newTable (col1, col2, col3, ..., colLast, colMonth)
SELECT col1, col2, col3, ..., colLast, 
      case strftime('%m', date('now')) 
        when '01' then 'January' 
        when '02' then 'Febuary' 
        when '03' then 'March' 
        when '04' then 'April' 
        when '05' then 'May' 
        when '06' then 'June' 
        when '07' then 'July' 
        when '08' then 'August' 
        when '09' then 'September' 
        when '10' then 'October' 
        when '11' then 'November' 
        when '12' then 'December' else '' end
      as colMonth
FROM oldTable;
以此为基础

select 
  case strftime('%m', date('now')) 
    when '01' then 'January' 
    when '02' then 'Febuary' 
    when '03' then 'March' 
    when '04' then 'April' 
    when '05' then 'May' 
    when '06' then 'June' 
    when '07' then 'July' 
    when '08' then 'August' 
    when '09' then 'September' 
    when '10' then 'October' 
    when '11' then 'November' 
    when '12' then 'December' else '' end
  as month 
我建议复制表的模式,为当月添加另一列。然后使用下面的语句

INSERT INTO TABLE newTable (col1, col2, col3, ..., colLast, colMonth)
SELECT col1, col2, col3, ..., colLast, 
      case strftime('%m', date('now')) 
        when '01' then 'January' 
        when '02' then 'Febuary' 
        when '03' then 'March' 
        when '04' then 'April' 
        when '05' then 'May' 
        when '06' then 'June' 
        when '07' then 'July' 
        when '08' then 'August' 
        when '09' then 'September' 
        when '10' then 'October' 
        when '11' then 'November' 
        when '12' then 'December' else '' end
      as colMonth
FROM oldTable;
然后

然后

在Oracle中:

TO_CHAR(date, 'Month')

您必须指定的RDBMS可能的副本,并确保在发布前进行搜索。快速搜索“Sql查询从datetime获取月份名称”会得到许多有希望的结果,例如:。显然,包括数据库类型可以缩小结果范围。
TO_CHAR(date, 'Month')