sql-server - 如何使用 dd-MMM-yyyy 格式将日期时间格式化为 varchar?

标签 sql-server tsql sql-server-2005

我觉得这应该是一个简单的解决方案,但我在上面找不到任何东西......

那么:如何从 datetime 转换为格式为 dd-MMM-yyyy 的 varchar

Eg: my_date --> '29-May-2012'

我成功完成的任务是

convert(varchar(20),my_date,105) --> '29-05-2012'

是的,我确实需要在 T-SQL 中正确执行此操作。

最佳答案

native 不支持此格式,但来自 Build a cheat sheet for SQL Server date and time formats ,最接近的可能是:

SELECT REPLACE(CONVERT(CHAR(11), GETDATE(), 106), ' ', '-');

此答案的先前版本建议使用 FORMAT(),但我已经进行了实验并相信 that's a bad idea at scale除非您只是希望所有查询花费两倍的时间。

关于sql-server - 如何使用 dd-MMM-yyyy 格式将日期时间格式化为 varchar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10822912/

相关文章:

.net - 如何使用同一个 SqlConnection 对象在多个 SqlCommand 中声明和使用 T-SQL 变量来执行多次插入?

python - 使用 adodbapi 连接到 SQLServer 2005

sql - 使用 OPENJSON() 返回对象的所有值

mysql - 存储过程中的多案例选择

sql - 解析某些 xml 时遇到问题

sql - 执行 sp_executeSql for select...into #table 但无法选择出临时表数据

sql - 存储过程(SQL Server),找不到问题

sql - T-SQL try ... catch 和多个批处理(2 begin...end,if...else)

sql - 如何: Manage multiple overlapping indexes in SQL Server 2005

sql - 忽略 CTE 中的日期列表