在SQL Server中临时编辑字段
我正在尝试以多种形式显示数据,但我对MSSQL非常陌生。有一个表有50行,其中有一个字段类似于在SQL Server中临时编辑字段,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我正在尝试以多种形式显示数据,但我对MSSQL非常陌生。有一个表有50行,其中有一个字段类似于2017年1月1日,但是我需要显示这个字段类似于2017年1月1日。如何在MSSQL中实现这一点 我尝试过游标的小示例,因为这只是一个示例,我将进一步编辑数据,我需要遍历请求的每一行并执行多个编辑。到目前为止,我取得的成就是: CREATE PROCEDURE dbo.text2 AS select TOP (50) * FROM table; GO 这将显示50行,但我无法通过其行或列进行迭代。我也
2017年1月1日
,但是我需要显示这个字段类似于2017年1月1日
。如何在MSSQL中实现这一点
我尝试过游标的小示例,因为这只是一个示例,我将进一步编辑数据,我需要遍历请求的每一行并执行多个编辑。到目前为止,我取得的成就是:
CREATE PROCEDURE dbo.text2
AS
select TOP (50) * FROM table;
GO
这将显示50行,但我无法通过其行或列进行迭代。我也试过了
DECLARE cur_mkt CURSOR FOR
select TOP (50) [field] FROM table
OPEN cur_mkt
FETCH NEXT FROM cur_mkt INTO @A
WHILE (@@FETCH_STATUS = 0)
BEGIN
PRINT @A
FETCH NEXT FROM cur_mkt INTO @A
END
CLOSE cur_mkt
DEALLOCATE cur_mkt
但这将只显示一列,这不是一个可行的解决方案,因为我应该能够处理至少150列
我也尝试过使用函数,但未能实现它。你能给我一个更好的指示,告诉我该怎么做吗
表中数据的示例如下所示
ID DATE PIECE1 PIECE2
1 01Jan2017 ABC DEF
2 02Jan2017 ABC DEF
现在在结果中,必须显示数据
ID DATE PIECE1 PIECE2 JOIN
1 01/01/2017 ABC DEF ABCDEFGHE
2 02/01/2017 ABC DEF ABCDEFGHI
连接行上的“GHE”或“GHI”是添加的字符串,可以是GHE或GHI
提前谢谢
Select convert(varchar(10),convert(date,'15Jan2017'),101)
返回
01/15/2017
编辑-为新信息更新
返回
01/15/2017
编辑-为新信息更新
将日期存储为
date
数据类型(日期时间存储为datetime
或datetime2(0-7)
数据类型),并在应用程序中按需要设置格式。是否将日期存储为字符串?停止这样做,您将避免很多麻烦。这些表单是windows表单还是web表单?从数据库中检索数据并在表单中显示的代码是什么?您使用的是哪种编程语言?您是否尝试过在mssql中转换函数以将字符串转换为日期?我在SQL Management studio上使用T-SQL处理此问题。我还没有尝试将字符串转换为日期,因为我还没有找到方法。请将日期存储为date
数据类型(日期时间存储为datetime
或datetime2(0-7)
数据类型),并在应用程序中按照您的需要设置格式。是否将日期存储为字符串?停止这样做,您将避免很多麻烦。这些表单是windows表单还是web表单?从数据库中检索数据并在表单中显示的代码是什么?您使用的是哪种编程语言?您是否尝试过在mssql中转换函数以将字符串转换为日期?我在SQL Management studio上使用T-SQL处理此问题。我还没有尝试将字符串转换为日期,因为我还没有找到一种方法。我如何编辑它选择convert(varchar(10),convert(date,'2017年1月15日'),101)
,逐段varchar(10)
inical DataType?,convert(date,'2017年1月15日'),101)
我如何在这里将2017年1月15日更改为表的字段?@CrisAlfie我将2017年1月15日作为一个示例。只需将“2017年1月15日”替换为您的实际字段即可name@CrisAlfie我要补充的是,第一个(或内部)转换将把字符串转换成日期类型,第二个(或外部)将把日期转换成格式化的日期类型string@CrisAlfie不清楚为什么在这里使用光标。也许如果您编辑您的问题并提供一些示例数据和期望的结果,我们(因此)可以提供额外的帮助,您可以看到,因为这个日期字段只是一个示例,我考虑首先使用游标,因为它与MySQL相似,我可以更好地使用,而且我的想法是获取日期的子字符串,但要做到这一点,我需要遍历每一行和每一列,以便以相同的方式显示每一行。另一个例子是连接两行并将连接插入另一列中。我如何编辑它选择convert(varchar(10),convert(date,'2017年1月15日'),101)
,逐段varchar(10)
inical DataType?,convert(date,'2017年1月15日'),101)
我如何在这里将2017年1月15日更改为表的字段?@CrisAlfie我将2017年1月15日作为一个示例。只需将“2017年1月15日”替换为您的实际字段即可name@CrisAlfie我要补充的是,第一个(或内部)转换将把字符串转换成日期类型,第二个(或外部)将把日期转换成格式化的日期类型string@CrisAlfie不清楚为什么在这里使用光标。也许如果您编辑您的问题并提供一些示例数据和期望的结果,我们(因此)可以提供额外的帮助,您可以看到,因为这个日期字段只是一个示例,我考虑首先使用游标,因为它与MySQL相似,我可以更好地使用,而且我的想法是获取日期的子字符串,但要做到这一点,我需要遍历每一行和每一列,以便以相同的方式显示每一行。另一个例子是连接两行并将连接插入另一列。
ID Date PIECE1 PIECE2 JOIN
1 01/01/2017 ABC DEF ABCDEFxxx
2 01/02/2017 ABC DEF ABCDEFyyy