首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是与tsql/sql server 2008等效的to-char?

什么是与tsql/sql server 2008等效的to-char?
EN

Stack Overflow用户
提问于 2010-08-16 23:20:58
回答 4查看 9.3K关注 0票数 1

我习惯了oracle,现在被抛给了T-SQL,我马上就要上一门课了,但在那之前你能帮我吗?

我有一个需要在几分钟内分组的列表。

行日期数据示例

代码语言:javascript
复制
SELECT ROWDATE,count(rowdate)
FROM [mydb].[dbo].[mytable]
GROUP BY ROWDATE
order by 1

2010-08-16 15:01:18.110 1
2010-08-16 15:01:18.203 1
2010-08-16 15:01:18.377 1
2010-08-16 15:01:18.453 1
2010-08-16 15:01:18.530 1
2010-08-16 15:01:18.610 1
2010-08-16 15:01:18.703 1
2010-08-16 15:01:18.813 1
2010-08-16 15:01:18.953 1
2010-08-16 15:01:19.173 1
2010-08-16 15:01:19.360 1
2010-08-16 15:01:19.483 1
2010-08-16 15:01:19.593 1
2010-08-16 15:01:19.673 1
2010-08-16 15:01:19.733 1
2010-08-16 15:01:19.813 1
2010-08-16 15:01:19.890 1
2010-08-16 15:01:19.970 1
2010-08-16 15:01:20.047 1

我只想按分钟分组。

代码语言:javascript
复制
SELECT to_char(rowdate,'dd/MM/yyyy HH24:MI'),count(rowdate)
FROM mytable
GROUP BY to_char(rowdate,'dd/MM/yyyy HH24:MI')
order by 1

在sql server(T-SQL)上,对应的脚本是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-16 23:37:37

要使datetime精确到分钟级(这比使用字符串操作要好):

代码语言:javascript
复制
DATEADD(minute,DATEDIFF(minute,0,datetime),0)

因此,按分钟分组,它将是:

代码语言:javascript
复制
SELECT 
    DATEADD(minute,DATEDIFF(minute,0,ROWDATE),0)
    ,count(rowdate)
FROM [mydb].[dbo].[mytable]
GROUP BY DATEADD(minute,DATEDIFF(minute,0,ROWDATE),0)
order by 1
票数 2
EN

Stack Overflow用户

发布于 2010-08-16 23:31:52

TSQL的等价物:

代码语言:javascript
复制
TO_CHAR(rowdate,'dd/MM/yyyy HH24:MI')

...is:

代码语言:javascript
复制
CONVERT(VARCHAR(16), rowdate, 20)

表达式"20“返回:yyyy-mm-dd hh:mi:ss(24h) -,它是VARCHAR(19),因此将其简化为VARCHAR(16)将省略秒。

在SQL Server2005中,获取可定制格式的唯一真正的方法是使用CLR函数,因此在C#中可以使用DateTime.ToString方法...

参考资料:

  • CAST/CONVERT
票数 4
EN

Stack Overflow用户

发布于 2010-08-16 23:33:28

那就是

代码语言:javascript
复制
convert(varchar, rowdate, 100)

格式并不完全相同,但重要的是,它也是一分钟。

编辑:

或者,您可以完全避免转换为varchar:

代码语言:javascript
复制
group by dateadd(ms, -datepart(ms, rowdate) , dateadd(s, -datepart(s, rowdate), rowdate))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3494567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档