标签: datetime

从时间数据类型获取分钟部分

使用时间数据类型(我使用的是 Microsoft SQL Server 2008),有没有办法只取出它的分钟部分?我试图将时间传递给 datepart 和 datediff 函数,但都拒绝工作。

示例:我想从 04:15 得到 15

sql-server-2008 sql-server datetime

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

如何检查给定日期时间的时区?

我正在使用的数据库/表将其所有日期值保存为日期时间(没有时区)。

如何找出该日期所在的时区?

例如,中欧夏令时 (+02) 从 2015 年 3 月 29 日开始,而之前的冬季时间 (+01) 从 2014 年 10 月 26 日开始。

假设我看到的日期是2014-11-06,是否有一个函数可以用来检查它属于哪个时区?

注意,我知道时区变化时会有一些边缘情况

如果需要的话,我对一些大的CASE WHEN语句感到满意,但当然更愿意使用一些系统函数。

sql-server t-sql datetime

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

如何在 MySQL 中找到下一个星期六

我有触发器和一个存储过程(所以 SP 在触发器运行时运行)。我需要一个函数来找到下一个星期六放入 SP。

所以让我们说,今天是星期三(2015-7-22)。如果我的触发器今天运行,其中的 SP 必须找到下一个星期六 (2015-7-25)。

另外,即使是星期六,但时间早于晚上 9.30,它也必须找到当天。晚上 9.30 之后,它必须在下周六返回。

我想把我的整个触发器和 sp 放在这里,但我不想在这里拥挤。我只需要想法,谢谢。

编辑:

感谢 oNaye,我编写了以下代码:

CREATE DEFINER=`root`@`localhost` PROCEDURE `newGuess`(
IN `muserID` INT, 
IN `numm1` INT, 
IN `numm2` INT, 
IN `numm3` INT, 
IN `numm4` INT, 
IN `numm5` INT, 
IN `numm6` INT)
    begin
set @today = (select weekday(curdate())+1); /*monday is the first day in here*/
if @today<6 or @today=7 then /*it is NOT saturday*/
    set @nextSaturday = (SELECT DATE_ADD(NOW(),INTERVAL IF(WEEKDAY(NOW())>=5,(6-WEEKDAY(NOW())),(5-WEEKDAY(NOW()))) DAY));
end if;
if @today = 6 then /* …
Run Code Online (Sandbox Code Playgroud)

mysql trigger stored-procedures datetime date

6
推荐指数
1
解决办法
6705
查看次数

将 CHAR 转换为 DATETIME 以便我可以使用 DATEADD()

我有一个关于将DATEADD()函数用于标识为的列的问题CHAR (6)

time_stamp列包含类似131329as 的值hhmmss。每当我尝试创建一个新列来保存列的值time_stamp+ 5 分钟时,我都会收到错误消息。

消息 242,级别 16,状态 3,第 1 行
字符数据类型到日期时间数据类型的转换导致日期时间值超出范围。`

我想要做的是创建一个新列,它比time_stamp. 我现在正在处理一份显示“已完成订单”的报告,但我需要该报告将订单显示为“未完成”至少 5 分钟,然后才能在报告中显示为“已完成”。

sql-server t-sql type-conversion datetime

6
推荐指数
1
解决办法
1000
查看次数

MySQL - 合并或拆分日期时间间隔(开始日期到结束日期)

我有一个表,其中存储了一个活动列表,其时间间隔由 2 个日期分隔。

样本:

+------+---------------------+---------------------+-------------+
| name |        start        |         end         | time (calc) |
+------+---------------------+---------------------+-------------+
|  me  | 2017-04-03 11:00:00 | 2017-04-03 11:30:00 |          30 |
|  me  | 2017-04-03 23:45:00 | 2017-04-04 00:15:00 |          30 |
|  me  | 2017-04-04 10:00:00 | 2017-04-04 11:00:00 |          60 |
|  me  | 2017-04-04 10:30:00 | 2017-04-04 11:30:00 |          60 |
|  me  | 2017-04-05 23:00:00 | 2017-04-05 23:30:00 |          30 |
|  me  | 2017-04-05 23:15:00 | 2017-04-07 00:45:00 | …
Run Code Online (Sandbox Code Playgroud)

mysql datetime interval

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

PostgresSQL 日期/时间字段在自纪元以来的秒数范围内超出范围

我正在将 csv 文件导入 PostgreSQL 数据库。大多数文件导入没有任何问题,直到我收到此消息

ERROR:  date/time field value out of range: "1421088300"
HINT:  Perhaps you need a different "datestyle" setting.
CONTEXT:  COPY accidents, line 6356158, column datetime: "1421088300"
Run Code Online (Sandbox Code Playgroud)

但这似乎是 01/12/2015 @ 6:45pm (UTC) 根据https://www.unixtimestamp.com/index.php的有效时间戳

那么为什么会超出范围呢?

postgresql timestamp datetime postgresql-9.5

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

Postgresql 将没有时区的时间戳更新为有时区

当我创建表时,创建了一个没有时区的时间戳列。所有导入的时间都在UTC. 现在我想明确添加时区信息,并且我已经更改了该列

ALTER TABLE review ALTER COLUMN review_time TYPE TIMESTAMP WITH TIME ZONE USING review_time AT TIME ZONE 'UTC';
Run Code Online (Sandbox Code Playgroud)

选择现有数据不显示添加的时区信息

review_time
2017-07-28 02:25:44
2017-07-28 03:10:35
2017-07-28 03:11:32
2017-07-28 03:11:35
2017-07-28 03:11:38
2017-07-28 03:11:41
2017-07-28 18:54:54
Run Code Online (Sandbox Code Playgroud)

我是否需要UPDATE对现有数据运行语句?如果需要,语法是什么?

更新1

缺少时区信息的输出是由于应用程序本身 (SQLWorkbenchJ) 造成的。查询 frompsql将显示时区

mydb # SELECT review_time FROM review;
      review_time       
------------------------
 2017-08-20 08:00:02+08
 2017-07-27 00:45:33+08
 2017-07-27 00:45:37+08
 2017-07-28 02:24:03+08
 2017-07-28 02:24:27+08
 2017-07-28 02:24:31+08
 2017-07-28 02:25:31+08
Run Code Online (Sandbox Code Playgroud)

postgresql timestamp datetime

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

在 Postgres 中将 Unix 时间戳转换为 SQL 时间戳

Date.now()我已经将和其他普通 Unix 时间戳值的结果传递1534360109480到 SQL 中,并通过以下方式运行它们:

"@converted_date" = to_timestamp("@date") AT TIME ZONE 'UTC';

而且它始终如一地返回50591-11-28 22:32:38

我不明白年份怎么可能是 50591,并且无论如何,日期/时间都不准确。

我究竟做错了什么?

postgresql timestamp datetime date

6
推荐指数
1
解决办法
9164
查看次数

DateTime2 和页面预期寿命 (PLE)

据我了解,当您在表上定义列时,您就定义了其精度。该精度占用 1 个字节并存储在列级别。如果您使用 5 或更高的精度,则 DateTime2 列每行将占用 8 个字节。(精度不存储在行级别。)

但是,当您将相同的 DateTime2 转换为 VarBinary 时,它将占用 9 个字节。这是因为它需要存储在列级别的精度字节。

我很好奇这与 DateTime2 存储在内存中有何关系。假设内存中有 1,000,000 个 DateTime2(每个的精度为 5 或更高)。它会占用 8,000,000 字节内存还是 9,000,000 字节内存?

基本上,我想知道默认精度的 DateTime2 是否会比普通的 DateTime 对页面预期寿命造成更大的压力?

sql-server datetime sql-server-2016 page-life-expectancy

6
推荐指数
2
解决办法
561
查看次数

将日期时间值填充到 datetime2 列中

今天在代码审查中看到这样的说法:

ALTER TABLE dbo.MyTable ADD CreateDate DATETIME2(0) NOT NULL DEFAULT GETUTCDATE()
Run Code Online (Sandbox Code Playgroud)

GETUTCDATE() 函数返回 a datetime,然后将其填充到datetime2列中。

这两种类型的不同有什么意义吗?使用 SYSUTCDATETIME() 创建datetime2值会更好吗?

sql-server datetime

6
推荐指数
1
解决办法
889
查看次数