Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将文本转换为系统日期格式_Sql_Sql Server_Tsql_Datetime - Fatal编程技术网

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

Sql 将文本转换为系统日期格式,sql,sql-server,tsql,datetime,Sql,Sql Server,Tsql,Datetime,我想将文本日期转换为系统日期格式。我怎样才能做到这一点 例如,我有我想要转换它的格式'MM/DD/YYYY',但它可以更改,可以是DD/MM/YYYY或YYYY/MM/DD,这里是一个示例 SELECT CONVERT(DATETIME,'04/13/2016',101) 结果是datetime数据类型EDIT 从SQL Server 2012及更高版本,如果要将日期强制转换为格式化文本,可以使用FORMAT函数: 对于早期版本,您可能会使用以下内容: DECLARE @d DATETIME=

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

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

,这里是一个示例

SELECT CONVERT(DATETIME,'04/13/2016',101)
结果是datetime数据类型

EDIT 从SQL Server 2012及更高版本,如果要将日期强制转换为格式化文本,可以使用
FORMAT
函数:

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

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 )         
以前的 看这里:

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

年月日为101,年月日为103

但是:您应该避免使用日期文字,因为它们取决于系统的区域性

从你的问题中,我知道你是源代码的所有者,所以你可以根据需要改变它。我强烈建议您使用独立格式


看这里:

我不想按代码,因为我想做这个动态的,只把转换成日期格式的日期格式传递给函数。日期格式是根据时区(以及在国家/地区使用的)。抱歉@Luis,但我不明白你的意思。。。您想将文本日期转换为系统日期格式文本日期来自何处,您打算如何处理它?@Luis this绑定到该语言。你可以在这里看一下:我不想用代码,因为我想做这个动态的,只把日期格式传递给函数,在这里转换成。经过一段时间的困惑,我想我知道你想要什么了:你把格式作为字符串参数,你想根据这个设置日期格式吗?哪个版本的SQL Server?嗨,路易斯,我编辑了我的答案…嗨,路易斯,我知道你一直在附近。我很好奇。。。我有没有猜出你的问题?我的回答对你有帮助吗?