我有一个表中的下列列:如何日期和时间转换为SQL Server中
Signed_In_Date Signed_Out_Time
11/1/2005 12:00:00 am 11/1/2005 10:27:00PM
我想将它们转换成以下的输出:
Signed_In_Date Signed_Out_Time
11/1/2005 10:27:00PM
是否有一个功能或SQL Server中的转换代码,将做到这一点?谢谢你的帮助。
我有一个表中的下列列:如何日期和时间转换为SQL Server中
Signed_In_Date Signed_Out_Time
11/1/2005 12:00:00 am 11/1/2005 10:27:00PM
我想将它们转换成以下的输出:
Signed_In_Date Signed_Out_Time
11/1/2005 10:27:00PM
是否有一个功能或SQL Server中的转换代码,将做到这一点?谢谢你的帮助。
尝试:
select CONVERT(VARCHAR(10),Signed_Out_Time,108) ,-- 108 is d/M/yyyy if you want mm/dd/yyy you should use 101
CONVERT(VARCHAR(8),Signed_In_Date,103)
你需要超过8个来存储MM/DD/YYYY(或者DD/MM/YYYY,谁知道) - 所以使用'VARCHAR(10)'atleast :) – cairnz 2012-03-20 11:39:41
@cairnz是啊我复制粘贴它应该是10和8. 11:11:11 – 2012-03-20 11:44:25
假设你指的是列DATETIME
列,我会用下面的代码:
仅日期
SELECT CONVERT(VARCHAR(10), GETDATE(), 101)
仅限时间
SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7))
您可以查看正在执行的查询/与它们一起玩here。
对于Sign_In_Date使用
select CONVERT(VARCHAR(10),'11/1/2005 10:27:00PM',108)
输出继电器:
11/1/2005
对于Sing_Out_Time
declare @time time
set @time=cast('11/1/2005 10:27:00PM' as Time)
select convert(varchar(10),@time,100)
输出:
10:27PM
可以使用convert以日期时间格式更改为自己的理想格式:
SELECT CONVERT(VARCHAR(10),Signed_In_Date,101) as 'Signed_In_Date',
CONVERT(VARCHAR(10),Signed_Out_Time,108) as 'Signed_Out_Time';
更多日期格式,超出此链接:
你存储这些日期为字符串?如果是这样,如果您计划对日期进行操作,则将这些字段转换为日期时间类型会更容易。无论如何,你应该可以这样做。 – 2012-03-20 11:38:27
什么样的数据类型是那些列,你使用的是哪个版本的SQL Server,什么格式的日期是MM/dd或dd/MM? – AdaTheDev 2012-03-20 11:38:43
最有可能的是,这里有一个功能。确切的答案可能取决于特定的SQL Server。 – brownian 2012-03-20 11:38:50