在SQL中显示完整日期的月份

时间:2018-12-05 10:40:57

标签: mysql sql date

我的数据库中有一列填充了完整日期的列:(0000-00-00) 我需要将此日期显示为月份字符串(例如1月)。

我在这里的SQL查询中还有太多选择:

1创建一个当month为'01'='January'的情况(我认为这是最好的选择,因为我可以随心所欲地更改字符串(例如,葡萄牙语,首字母大写)。无法做到这一点,我尝试了子字符串,但是日期不喜欢子字符串语句。

2只是将该日期显示为月份:

MONTH(DT_CANCEL)

但是,我需要显示字符串(一月),并且上面仅输出01

什么是最佳选择(以及如何),我可以在SQL查询中显示日期的全月名称?

使用MySQL。

5 个答案:

答案 0 :(得分:1)

您可以简单地使用MonthName:

SELECT MONTHNAME('2009-05-18');

这将输出May。

此处参考: https://www.w3resource.com/mysql/date-and-time-functions/mysql-monthname-function.php

答案 1 :(得分:1)

在mysql中,您可以使用monthname

SELECT MONTHNAME(DT_CANCEL) from your_table;

答案 2 :(得分:1)

mysql:

 /// Create a new view (profile). 
        /// Documentation https://developers.google.com/analytics/v3/reference/profiles/insert
        /// Generation Note: This does not always build corectly.  Google needs to standardise things I need to figuer out which ones are wrong.
        /// </summary>
        /// <param name="service">Authenticated Analytics service.</param>  
        /// <param name="accountId">Account ID to create the view (profile) for.</param>
        /// <param name="webPropertyId">Web property ID to create the view (profile) for.</param>
        /// <param name="body">A valid Analytics v3 body.</param>
        /// <returns>ProfileResponse</returns>
        public static Profile Insert(AnalyticsService service, string accountId, string webPropertyId, Profile body)
        {
            try
            {
                // Initial validation.
                if (service == null)
                    throw new ArgumentNullException("service");
                if (body == null)
                    throw new ArgumentNullException("body");
                if (accountId == null)
                    throw new ArgumentNullException(accountId);
                if (webPropertyId == null)
                    throw new ArgumentNullException(webPropertyId);

                // Make the request.
                return service.Profiles.Insert(body, accountId, webPropertyId).Execute();
            }
            catch (Exception ex)
            {
                throw new Exception("Request Profiles.Insert failed.", ex);
            }
        }

答案 3 :(得分:0)

在Oracle中,使用TO_CHAR:

select TO_CHAR(SYSDATE, 'Month') FROM dual;

December 

答案 4 :(得分:0)

如果您使用的是MS SQL Server,则无需编写Case语句,请尝试以下操作:

SET LANGUAGE Portuguese

SELECT UPPER(LEFT(DATENAME(month, getdate()),1))+LOWER(SUBSTRING(DATENAME(month, 
getdate()),2,LEN(DATENAME(month, getdate())))) 

如果要重置服务器的语言,则可以通过运行以下脚本来查看别名列表:

SELECT * FROM sys.syslanguages