在SQL Server中将一种日期时间格式转换为另一种格式

时间:2015-06-22 13:25:02

标签: sql-server

我的数据库$("ul.tabs-nav").children().each(function(i) { var $this = $(this); // don't look for the same element twice $this.addClass("prefix_" + (i+1)); $this.find('a').attr('href', 'prefix_' + (i+1)); // find the link and add href }); 中有datetime2格式。我需要将其转换为以下格式2015-06-22 06:23:42.790

有可能吗?

3 个答案:

答案 0 :(得分:0)

不要尝试转换数据库布局。年月日是SQL服务器显示日期的方式,因为它忽略了任何国际日期格式。

我注意到你想要它在2015年6月22日你在英国吗?在美国它将是06/22/2015不是一个问题,因为很明显,22日是一天。但如果日期是05/06/2015,那么sql或者任何人都知道你在说什么日子或月份。

因此,养成以ISO格式工作年月日的习惯。

你没有提到什么编程语言。从数据库中读取数据时,您将其读入datetime变量。这会将日期正确转换为用户正在使用的任何语言环境。不同的语言有不同的方式将日期转换为datettime变量。

答案 1 :(得分:0)

如果它仅用于显示用途,您可以使用FORMAT()函数转换为varchar:

 /\[url=?\]([a-z0-9:\.\\\/\-\s]*?)\[\/url\]/is

答案 2 :(得分:0)

以下是一种方法:

DECLARE @date DATETIME2 = '2015-06-22 06:23:42.790';

SELECT cast(convert(VARCHAR(10), cast(LEFT(@date, 10) AS DATE), 3) AS VARCHAR(10)) 
        + ' ' + substring(cast(@date AS VARCHAR(50)), 12, 12)

查询细分:

  1. 第一部分 :从日期字段中取出前10个字符,然后将其转换为日期样式3(dd / mm / yyyy)。
  2. 第二部分 :在日期和时间之间添加空格。
  3. 第三部分 :将您的日期字段转换为varchar并提取应始终从字符串的第12个位置开始的时间。
  4. 将它们全部加在一起,你就拥有它!希望这有帮助!