设置和声明 - 传递列内容 -
Set and Declare - passing a column content -
我在网上看到下面的说法,解决了我80%的问题,但我需要通过这个过程来传递一个专栏,而不是像下面这样设置一个标准日期
(SET @Date = '25032014';).
DECLARE @Date VARCHAR(8); -- input parameter
SET @Date = '25032014';
DECLARE @Date2 CHAR(10);
SET @Date2 = STUFF(STUFF(@Date, 3, 0, '/'), 6, 0, '/');
SELECT @Date2, CONVERT(DATE, @Date2, 103); -- 103 = dd/mm/yyyy
-- 25/03/2014 2014-03-25
非常感谢您的回答,因为我在这里快疯了 - 我相信这是一个很容易回答的问题
您可以将其转换为 select 语句,假设有一个 table MyTable 和您要在 MyDate
上操作的列
DECLARE @Date2 CHAR(10);
SET @Date2 = STUFF(STUFF(@Date, 3, 0, '/'), 6, 0, '/');
会变成
SELECT STUFF(STUFF(MYDate, 3, 0, '/'), 6, 0, '/') AS date2
FROM MyTable
最后一个查询可以使用子查询来编写
SELECT date2, CONVERT(DATE, date2, 103) from (
SELECT STUFF(STUFF(MYDate, 3, 0, '/'), 6, 0, '/') AS date2
FROM MyTable
) as tbl
我在网上看到下面的说法,解决了我80%的问题,但我需要通过这个过程来传递一个专栏,而不是像下面这样设置一个标准日期 (SET @Date = '25032014';).
DECLARE @Date VARCHAR(8); -- input parameter
SET @Date = '25032014';
DECLARE @Date2 CHAR(10);
SET @Date2 = STUFF(STUFF(@Date, 3, 0, '/'), 6, 0, '/');
SELECT @Date2, CONVERT(DATE, @Date2, 103); -- 103 = dd/mm/yyyy
-- 25/03/2014 2014-03-25
非常感谢您的回答,因为我在这里快疯了 - 我相信这是一个很容易回答的问题
您可以将其转换为 select 语句,假设有一个 table MyTable 和您要在 MyDate
上操作的列DECLARE @Date2 CHAR(10);
SET @Date2 = STUFF(STUFF(@Date, 3, 0, '/'), 6, 0, '/');
会变成
SELECT STUFF(STUFF(MYDate, 3, 0, '/'), 6, 0, '/') AS date2
FROM MyTable
最后一个查询可以使用子查询来编写
SELECT date2, CONVERT(DATE, date2, 103) from (
SELECT STUFF(STUFF(MYDate, 3, 0, '/'), 6, 0, '/') AS date2
FROM MyTable
) as tbl