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?嗨,路易斯,我编辑了我的答案…嗨,路易斯,我知道你一直在附近。我很好奇。。。我有没有猜出你的问题?我的回答对你有帮助吗?