将文本转换为系统日期格式

时间:2016-04-13 13:20:21

标签: sql sql-server tsql datetime

我想将文本日期转换为系统日期格式。我怎么能做到这一点?

例如,我有我想要转换它的格式'MM/DD/YYYY',但它可以更改,可以是dd/mm/yyyyyyyy/mm/dd

2 个答案:

答案 0 :(得分:0)

这是一个例子

SELECT CONVERT(DATETIME,'04/13/2016',101)

结果是datetime数据类型

答案 1 :(得分:0)

修改

如果要将日期强制为格式化文本,则可以使用FORMAT函数从SQL Server 2012及更高版本开始:https://msdn.microsoft.com/en-us/library/hh213505.aspx

对于早期版本,您可以使用以下内容:

DECLARE @d DATETIME=GETDATE();

DECLARE @TargetFormat VARCHAR(100)='DD/MM/YYYY';

SELECT CONVERT(VARCHAR(100),@d, CASE @TargetFormat
                                  WHEN 'MM/DD/YYYY' THEN 101
                                  WHEN 'DD/MM/YYYY' THEN 103
                                  --add all formats convert can undertsand
                                 ELSE 101 END )         

请看这里:https://msdn.microsoft.com/en-us/library/ms187928.aspx

CONVERT中的第三个参数指定格式。

MM / DD / YYYY为101,dd / mm / yyyy为103

但是:你应该避免使用日期文字,因为它们取决于你的系统文化。

根据您的问题,我知道您是来源的所有者,因此您可以根据需要进行更改。我强烈建议您使用独立格式。

请看这里:https://stackoverflow.com/a/34275965/5089204