MSSQL中的日期时间格式

时间:2017-07-03 22:29:01

标签: sql-server vb.net

在我的应用程序中,我使用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日

5 个答案:

答案 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;

输出结果为:

enter image description here

答案 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')