标签: date

查找给定列的最频繁值

我有一张桌子,我想将其作为如下所述的邀请排行榜。我想创建一个查询来计算给定月份中重复行的数量并以降序排列。

通读一些问题,这个查询似乎有效:

SELECT COUNT(invite_code) AS counted
FROM invite_table
GROUP BY invite_code
ORDER BY counted DESC
LIMIT 10;
Run Code Online (Sandbox Code Playgroud)

但它不考虑月份。我正在寻找的是获得最常出现的user_code在指定月份的地方。此外,对表设计的任何批评都是受欢迎的,因为我故意设计它以便有具有重复值的重复行。我正在尝试跟踪在给定月份中使用最多邀请码的用户,我还有一些代码指示用户来自哪个频道(例如,可能在 FB 中看到广告),这是一个有效的表格设计吗?

表“public.invite_table”
   专栏 | 类型 | 整理 | 可空 | 默认
-------------+--------------+-----------+- ---------+---------
 用户代码 | 性格变化| | 不为空|
 邀请码 | 性格变化| | |
 月 | 字符变化(3) | | 不为空|
 点 | 整数 | | 不为空|
索引:
    "invite_table_pkey" PRIMARY KEY, btree (user_code)
外键约束:
    “invite_table_user_code_fkey”外键(用户代码)参考用户表(用户代码)

postgresql database-design aggregate date

4
推荐指数
1
解决办法
7047
查看次数

SQL Server 的 CURRENT_DATE 或当前日期值函数是什么?

什么是 SQL Server 功能,它允许您将当前日期作为DATE类似于 SQL 标准CURRENT_DATE功能的类型获取。什么是<current date value function>SQL Server的?

使用 PostgreSQL,我正在寻找类似的东西,

SELECT CURRENT_DATE;
 current_date 
--------------
 2018-06-27
(1 row)
Run Code Online (Sandbox Code Playgroud)

sql-server date

4
推荐指数
2
解决办法
2万
查看次数

SQL Server 2016 突然产生 Error:402,State:1,Class:16 用 DATETIME/DATE/TIME 算法更新 sproc,这在之前很好

在其中一个存储过程中,我需要捕获实时事件的持续时间。保证永远不会超过 24 小时,因此结果列的数据类型选择为TIME(3)(映射到TimeSpan应用程序端)。计算过程如下:

update tbEvent set tWait= @dtEvent - dEvent - tEvent [where idEvent = @idEvent]
Run Code Online (Sandbox Code Playgroud)

此处dEventtEvent先前设置为dtEvent(原始事件@dtEvent的时刻)的日期和时间部分,并且是后续关闭事件的时刻。因此,我从 DATETIME 变量中减去 DATE 和 TIME 列值,并将结果填充到 TIME 列中。

[合理吗?] 预期行为: SQL 将每个表达式项隐式转换为 DATETIME,执行减法,然后通过简单地删除 DATE 部分将结果隐式转换为 TIME这一直有效! 嗯, - 到目前为止..


一个更新脚本突然在 SQL 2016 (13.0.1742.0) 上产生了一个错误

System.Data.SqlClient.SqlException (0x80131904):
    The data types datetime and date are incompatible in the subtract operator.
    Error Number:402,State:1,Class:16
Run Code Online (Sandbox Code Playgroud)

但是相同的脚本在 2008 R2 (10.50.2500.0) 和 2019 (15.0.2080.9) 上运行良好! …

sql-server t-sql datetime date sql-server-2016

4
推荐指数
1
解决办法
119
查看次数

如何找到自会计月开始以来的天数?

这与我的问题有关如何在 SQL 服务器中找到上个月的第 XX 天?

会计月从每个月的 26 日开始。

我需要从任何日期找出:

  • 会计月的开始日期 (Start_Of_Fiscal_Month)
  • 进入会计月的天数 (Day_Of_Fiscal_Month)

例如:

CurrentDate - '2014-04-26'

Start_Of_Fiscal_Month = 2014-04-26
Day_Of_Fiscal_Month = 1
Run Code Online (Sandbox Code Playgroud)
CurrentDate - '2014-05-02'

Start_Of_Month = 2014-04-26
Day_Of_Fiscal_Month = 7
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2008-r2 datetime date

3
推荐指数
1
解决办法
1119
查看次数

如何对日程进行建模并保持良好的约束条件?

我有一些数据很难建模。特别是,我不确定如何确保我拥有唯一的数据。这是我将团队分配到商店的时间表。一个团队将连续两天被安排在同一家商店,但我必须确保在给定的时间段(或“周期”)内安排他们不超过 2 天。

数据的电子表格表示如下所示。

Cycle Team    Store   Date
1     1       1   1-Dec
1     1       1   2-Dec
1     1       2   3-Dec
1     1       2   4-Dec
1     1       3   8-Dec
1     1       3   9-Dec
1     1       4   10-Dec
1     1       4   11-Dec
1     2       10  1-Dec
1     2       10  2-Dec
1     2       11  3-Dec
1     2       11  4-Dec
1     2       12  8-Dec
1     2       12  9-Dec
1     2       13  10-Dec
1     2       13  11-Dec
Run Code Online (Sandbox Code Playgroud)

我已经有了一个运行良好的团队/商店交叉引用,但达到这种粒度级别是新的。如果我可以在 Team/Store/Date 上放置一个复合主键会很容易,但我显然不能这样做,或者我只能存储两个预定日期中的一个。

迄今为止,我已经考虑使用具有一对多关系的日期表,从 Team/Store 到现在,但这似乎并没有解决唯一性问题,并增加了一些愚蠢的开销。

有没有人对如何建模有任何建议?

该标签似乎不合适,因为这确实是我问的一个抽象设计问题,但我使用的是 …

normalization database-design date

3
推荐指数
1
解决办法
748
查看次数

有没有办法在SQL中计算上个月/上年的昨天/今天?

有没有办法在 SQL 中计算上个月(和去年)的今天(和昨天)?

假设今天是 26-May-2015 那么如何找到?

  • 去年的今天,即 26-May-2014?
  • 上个月的今天,即 26-April-2015?
  • 去年的昨天,即 25-May-2014?
  • 上个月的昨天,即 25-April-2015?

sql-server-2008 sql-server datetime date

3
推荐指数
2
解决办法
5787
查看次数

如何在 Oracle 的 TO_DATE 调用中正确使用时区格式说明符

我正在尝试DATE使用以下语句获取对象:

TO_DATE('1970-01-01 00:00:00 UTC','YYYY-MM-DD HH24:MI:SS TZR')
Run Code Online (Sandbox Code Playgroud)

TO_DATE('1970-01-01 00:00:00 UTC','YYYY-MM-DD TZH:TZM:SS TZR')
Run Code Online (Sandbox Code Playgroud)

但在这两种情况下,它都告诉我:ORA-01821: date format not recognized.

TZRhttps://www.techonthenet.com/oracle/functions/to_date.php得到了格式说明符,即:

TZD 夏令时信息。例如,“太平洋标准时间”
TZH 时区小时。
TZM 时区分钟。
TZR 时区区域。

用时区指定日期/时间的正确方法是什么?

oracle date-format date

3
推荐指数
1
解决办法
2万
查看次数

按历史“本月最后一天”过滤表

我有一个每日附加表,我需要一个公式来将表结果过滤到任何给定历史月份的最后一天。例如:

桌子:

DwDate            Balance
20181231           $10
20190131           $80   
20190228           $75
20190331           $50
Run Code Online (Sandbox Code Playgroud)

99% 的时间我只需要MAX(DwDate),这将是:

@MaxDate = (SELECT MAX(DwDate) FROM dbo.TABLE)
Run Code Online (Sandbox Code Playgroud)

但是,有时我需要一个可以让我回到 1 或 2 个月的公式:

@MaxDate - 2 Months
Run Code Online (Sandbox Code Playgroud)

sql-server date sql-server-2016 date-math

3
推荐指数
1
解决办法
223
查看次数

如何在 PostgreSQL 中将带时区的时间戳转换为数字(unix)?

我的表中有带有时区的时间戳(timestamptz)。我可以将它们转换为 unix 时间戳格式的数字或 int 吗?

我发现了这个问题,但它只显示了如何将没有时区的时间戳转换为unix时间戳。

postgresql date

3
推荐指数
1
解决办法
1万
查看次数

在 DATETIME 列上连接表时优化 SQL Server 查询

我正在使用 SQL Server,我有两个表,table1并且table2. 两个表都有一个DATETIME表示为 的列dt。我不仅需要根据某些条件连接这些表,还要确保匹配的行具有相同的日期(此处不考虑时间)dt

这是我当前使用的查询:

select *
From table1 a inner join table2 b
    on a.id = b.a_id
    and convert(date, a.dt) = convert(date, b.dt)
Run Code Online (Sandbox Code Playgroud)

该查询可以获取我需要的结果,但我担心它的性能,尤其是当表大小增加时。

我想知道是否有更高效的方法可以达到相同的结果?是否有技术或 SQL Server 功能可以帮助我优化此查询,尤其是日期比较部分?

任何意见或建议将不胜感激。先感谢您。

join sql-server datetime date

3
推荐指数
1
解决办法
1485
查看次数