我有一个带有发票和日期时间的数据库,他们已经创建了,我希望根据每张发票的日期有一个名为月份的新列。我的意思是如果日期是2013-01-15,我想在The New columm上有“january”。 在此先感谢,我对sql知之甚少。
答案 0 :(得分:1)
如果您的数据库是MySQL,请尝试:
DATE_FORMAT(date, '%M')
答案 1 :(得分:1)
对于MS SQL Server使用
SELECT DATENAME(MONTH,invoiceDate)
答案 2 :(得分:0)
从datetime对象中提取月份,然后在CASE语句中使用它。
构建于此
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;
然后
drop table oldTable;
然后
Some alter to change the name of the new table to the name of the old table.
答案 3 :(得分:0)
在Oracle中:
TO_CHAR(date, 'Month')