如何使T-SQL仅打印datetime
对象中的日期部分?我尝试了101格式的转换,因为它同时打印时间也无法正常工作。
这是我正在谈论的代码:
DECLARE @ReceivedDate DATETIME = GETDATE()
SET @ReceivedDate = CONVERT(VARCHAR(10), CAST(RTRIM(@ReceivedDate) AS DATE), 101);
PRINT @ReceivedDate
答案 0 :(得分:1)
更新:从问题更改开始。
要获取日期,只需执行以下操作:
SELECT CAST(GETDATE() AS DATE)
OR
declare @ReceivedDate datetime=getdate()
DECLARE @Dateonly AS VARCHAR(50)
SET @DateOnly = Cast(@ReceivedDate as Date)
PRINT @DateOnly
原始问题的答案只是时间
您遇到了几个问题。
1.您做错了转换以获取时间。
您需要修复转换并创建一个新变量(如下所示)以将转换结果放入或直接打印出转换。
declare @ReceivedDate datetime=getdate()
DECLARE @TimeOnly AS VARCHAR(50)
SET @TimeOnly = CONVERT(varchar(10),@ReceivedDate, 108);
PRINT @TimeOnly
答案 1 :(得分:1)
根据需要的格式使用以下内容:
SELECT CONVERT(VARCHAR(10), getdate(), 101);
Output: 07/16/2019
SELECT CONVERT(VARCHAR(10), getdate(), 105);
Output: 16-07-2019
SELECT CONVERT(VARCHAR(10), getdate(), 111);
Output: 2019/07/16
答案 2 :(得分:0)
您的代码是正确的问题是您正在将其分配回datetime变量并打印肯定带有时间戳的datetime变量。您应该在打印之前将其分配给字符串或日期变量
declare @ReceivedDate datetime=getdate()
SET @ReceivedDate = Convert(varchar(10),@ReceivedDate, 101);
print @ReceivedDate
print Convert(varchar(10),@ReceivedDate, 110);
输出
Jul 16 2019 12:00AM
07-16-2019