SQL如何按条件选择DateTime的格式

在TableA表中有一个datetime类型的字段DT,我选择希望:1、当日期等于今天时,选出时间(忽略日期)2、当日期不是今天时,选出日期(忽略时间)现在我知道分别实现... 在TableA表中有一个datetime类型的字段DT,我选择希望:
1、当日期等于今天时,选出时间(忽略日期)
2、当日期不是今天时,选出日期(忽略时间)

现在我知道分别实现2个情况,但是不知道怎么通过比较来分情况

我是这样写的,但是语句不通过:
SELECT
CASE CONVERT(NVARCHAR(100),DT,23)
WHEN CONVERT(NVARCHAR(100),GetDate(),23)
THEN CONVERT(NVARCHAR(100),DT,8)
ELSE CONVERT(NVARCHAR(100),DT,23)
FROM TableA

那位牛MAN/WOMAN知道的??
刚才已经解决了~~去网上查貌似我少了个END
SELECT *,
CASE CONVERT(NVARCHAR(10),tCreateDate,23)
WHEN CONVERT(NVARCHAR(10),GETDATE(),23)
THEN CONVERT(NVARCHAR(10),tCreateDate,8)
ELSE CONVERT(NVARCHAR(10),tCreateDate,23)
END tCreateDate2
FROM Topics

看了你的代码,也符合要求。谢谢你了~~~~
展开
 我来答
wangzhiqing999
2010-10-20 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3345万
展开全部
我的 字段名是 a, 结果应该是满足要求的

1> SELECT * FROM test_jiulang1989
2> go
a
-----------------------
2010-10-20 22:14:42.640
2010-10-10 10:10:10.000

(2 行受影响)
1>
2> SELECT
3> CASE
4> WHEN DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)
5> = DATEADD(DAY, DATEDIFF(DAY, 0, a), 0)
6> THEN CONVERT(NVARCHAR(100),a,8)
7> ELSE
8> CONVERT(NVARCHAR(100),a, 23)
9> END
10> FROM
11> test_jiulang1989
12> go

--------------------------------------------------------------------------------
--------------------
22:14:42

2010-10-10

(2 行受影响)
1>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式