在我的应用程序中,我使用DateEdit
控件并使用此格式dd/MM/yyyy
显示日期,因此当我使用mssql-server 2014(西班牙语)时,日期是正确保存的,但是当我使用mssql-server时2008(英语)日期与此fomat MM/dd/yyyy
一起存储所以我需要知道的是如果有办法以格式dd/MM/yyyy
存储日期,无论mssql的版本如何 - 我使用的服务器或我使用的语言?
编辑:更好地解释这是问题所在,此文本03/07/2017
存储在sqlserver 2014中,截至2017年7月3日,sqlserver 2008存储为2017年3月7日
答案 0 :(得分:2)
Convert.ToDateTime(String).ToString("dd-MM-yyyy")
答案 1 :(得分:1)
检查MS SQL Server 2008上的defualt语言,如果可能,您可以更改为西班牙语:How to change Date Format after installing SQL Server
此外,您可以使用格式103使用CONVERT函数(@ZLK发布链接)格式化查询输出:CONVERT (DATETIME,[YOURDATE],103)
答案 2 :(得分:1)
以下解决方案有两个选项。您可以根据自己的要求使用一个。
DECLARE @Date AS TABLE(val VARCHAR(30));
INSERT INTO @Date VALUES('12/04/2016');
INSERT INTO @Date VALUES('10/01/2015');
INSERT INTO @Date VALUES('17/03/2017');
--Option 1
SELECT TRY_PARSE(val AS DATE USING 'en-gb') 'Option 1' FROM @Date;
--Option 2
SELECT CONVERT(VARCHAR(10),TRY_PARSE(val AS DATE USING 'en-gb'),103) 'Option 2' FROM @Date;
输出结果为:
答案 3 :(得分:0)
正如其他人所说:SQL不像我们人类那样存储日期。但那是另一回事。 我认为您需要的是告知SQL您的日期格式。 最佳选择是使用ISO 8601格式:yyyy-mm-ddThh:mi:ss.mmm。 因此,如果在保存日期之前只使用此格式对其进行格式化,则SQL(无论版本或语言)会将其识别为一年开头,然后是一个月,依此类推。 此主题的关键是使用前4位。 这样, 2017-01-03 将永远是 2017年1月3日,永远不会 2017年3月1日。希望这对你有所帮助。
答案 4 :(得分:0)
使用此方法,您可以更改日期格式
select FORMAT(GETDATE(), 'dd/MMM/yyyy', 'en-us')