mssql转换(日期)问题

时间:2017-10-13 13:25:42

标签: sql sql-server

我有SQL Server 2014 French。

我想了解如何转换为

  1. 日期,日期 - 时间列到DD-MON-YYYY字符串[13-OCT-2017]
  2. DD-MON-YYYY字符串[13-OCT-2017]至YYYYMMDD字符串[20171013]
  3. DD-MON-YYYY字符串[13-OCT-2017]迄今为止,日期时间值
  4. 通常在mssql DB中我会这样做:

    select Upper(replace(CONVERT(NVARCHAR, COLUMN_NAME, 106), ' ', '-')) 
    

    但是上面的查询提示我:

    31-AOÛT-2017 instead of 31-AUG-2017
    

    &安培;从DD-MON-YYYY字符串转换为YYYYMMDD:

    convert(date, Column_Name, 102),'-','')
    

    在此数据库中不起作用。

    提前致谢。

2 个答案:

答案 0 :(得分:0)

这是一个语言问题。手动设置交易语言:

SET LANGUAGE= English
SELECT Upper(replace(CONVERT(NVARCHAR, COLUMN_NAME, 106), ' ', '-')) 
GO

答案 1 :(得分:0)

通常,您根据应用程序设置的首选项,让使用结果集的客户端应用程序格式化。为什么你认为开发人员应该强制使用英语而不是法语(或任何其他语言)月份名称?

但我们知道你很久以前就通过了这个决策点。您可以使用format函数执行此操作。文档here

中有一个完全相同的示例