sql - 将日期显示为 YYYY-MMM 的函数

标签 sql sql-server user-defined-functions date-formatting scalar

如标题所述,我正在尝试制作一个小函数来获取数据库中已有的日期值并将它们显示为 YYYY-MMM(例如:2013 年 11 月)。 SQL服务器。我试过 DatePart 但它一次只接受一个部分的争论(不能做 YYYY-MMM)。有什么建议将其保留为一个函数吗?

Create function fnYearMonth
(@InputDate date)
returns date
Begin
Return DatePart(YYYY-MMM, @inputdate)
End;

Select hiredate, dbo.fnYearMonth(hiredate) as ReviewDate
from employees
Order by ReviewDate 

最佳答案

使用DATENAME

DECLARE @InputDate datetime
SELECT @InputDate = '2013-10-10 10:10:10'

DECLARE @output nvarchar(8);
SELECT @output = CAST(DatePart(YYYY, @InputDate) as nvarchar(4)) + '-' + CONVERT(nvarchar(3), datename(month, @InputDate))
SELECT @output;

结果:

2013-Oct

编辑:

Create function fnYearMonth
(@InputDate date)
returns nvarchar(8)
Begin
Return CAST(DatePart(YYYY, @InputDate) as nvarchar(4)) + '-' + CONVERT(nvarchar(3), datename(month, @InputDate))
End;  

关于sql - 将日期显示为 YYYY-MMM 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19947193/

相关文章:

java - sybase中临时表提交事务

php - 将 php assoc 数组键和值传递到 MySql SELECT 语句中

SQL - 使用适用于多行的 WHERE 进行选择

sql - 我无法优化无序账单的支票

types - 设置 Aerospike bin 中最小值的原子操作

sql - MySQL DELETE 在单个表中

php - SQL:无法选择数据库

sql-server - sql查询通知服务问题

sql-server - T-SQL : How Do I Create A "Private" Function Inside A Stored Procedure

python - Pyspark UDF无法使用大字典