Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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
按模式的T-SQL格式日期_Sql_Tsql_Datetime_Sql Server 2005 - Fatal编程技术网

按模式的T-SQL格式日期

按模式的T-SQL格式日期,sql,tsql,datetime,sql-server-2005,Sql,Tsql,Datetime,Sql Server 2005,是否可以按特定模式更改格式日期?我需要做一个有两个参数的函数。第一个是日期,第二个是模式。我需要转换更多的日期变量。目标此函数用于更改美国和欧洲日期格式 例如,我需要转换 欧盟:dd:MM:yyyy hh:MM:ss 到 美国:MM:dd:yyyy hh:MM:ss 在另一页上,我需要更改 欧盟:年月日 到 美国:年月日 我有几个下一个要转换的变体 我想做一个类似的函数 Formater(euDate, pattern) BEGIN .... RETURN usDate 不幸的是,我的生产服

是否可以按特定模式更改格式日期?我需要做一个有两个参数的函数。第一个是日期,第二个是模式。我需要转换更多的日期变量。目标此函数用于更改美国和欧洲日期格式

例如,我需要转换

欧盟:dd:MM:yyyy hh:MM:ss 到 美国:MM:dd:yyyy hh:MM:ss

在另一页上,我需要更改

欧盟:年月日 到 美国:年月日

我有几个下一个要转换的变体

我想做一个类似的函数

Formater(euDate, pattern)
BEGIN
....

RETURN usDate
不幸的是,我的生产服务器是SQL server 2005,不支持函数
FORMAT()
。函数
CONVERT()
不支持日期的某些变体,我需要将其转换。因此,在我当前的解决方案中,我将欧盟日期解析为各个部分
(@day=day(@euDate),@month,@year,…)
,并将它们加入到新字符串中。并将其与模式中的输入参数和与模式相同的返回案例进行了比较。我想使这个函数更一般和简单


谢谢您的建议。

您几乎可以肯定地使用
转换功能。您可以阅读有关所有选项的更多信息


如果您需要一些模糊不变量,请检查。

您可以使用CLR程序集吗?这些都是在2005年开始工作的,据我所记得的,SQL Server新FORMAT()方法的更高版本基本上只是标准公共语言运行时格式化方法的包装。我认为否决票是因为问题指定了
CONVERT
函数不能处理所有变体,尽管这一断言并没有举例说明。我想看看不适用于
CONVERT
的变体的示例,看看我们是否能找到解决方案。@BrianPayne这很奇怪,因为OP需要的案例似乎已经涵盖在内。此外,我提供的第二个链接有一个功能,基本上可以用来构建任何需要的东西。我编辑了我的答案以表达同样的意思。谢谢你的建议,我不会对你的答案投反对票,但例如,我有一个dd.MM.yyy time格式,而这个格式我在Convert函数中找不到。该函数显然有2015年1月1日,这在大多数情况下似乎足够了。