是否可以更改SQL Server上特定数据库的日期时间?
它是否与操作系统的日期/时间相关联?
我们希望模拟未来的日期时间以进行测试,即GETDATE()返回日期.
它必须处于半生产(临时)环境中,所以不幸的是,改变操作系统日期/时间对我们来说不是一个选择.
在一个理想的世界中,我们会启动一个虚拟服务器,但目前还不是一个真正的选择.
如何使用javascript以此格式[mm/dd/yy]获取日期.我很难将'年'变为2位数而不是4位数.
谢谢!
我创建了一个WordPress自定义帖子类型,以便能够创建事件,选择事件的日期,并在前端显示日期.
我在WP的数据库的postmeta中添加了一个新的meta_key,用于将事件的日期存储在UNIX时间戳中.
我在创建一个新的WP查询以在我的网站上输出我的事件时没有遇到任何问题,但我试图弄清楚如何通过数据库中的UNIX时间戳来组织事件,而不是通过WordPress创建事件的日期.
我似乎无法绕过这件事......任何建议?
我需要插入一个应该包含日期的字符串(注释).我需要的基本上是以下简单的操作:
INSERT INTO [Table_1]
([textColumn])
VALUES
('Date: ' + GETDATE())
GO
Run Code Online (Sandbox Code Playgroud)
但是,这会返回以下错误:从字符串转换日期和/或时间时转换失败.
任何快速修复?
假设
isnull(some_column, getdate()) >= getdate()
Run Code Online (Sandbox Code Playgroud)
其中逻辑是,如果some_column为null,则此表达式应始终为true.然而,这总是如此(因为在两次getdate()评估之间已经过了一段时间并且它们不会相等)?
我正在试验一个程序,该程序可以高速将数据插入 SQL 2005 Server 数据库(在 XP SP3 上)。(这是为了收集时序数据,以便我可以评估设计的不同方面)。
我的基本设置包括将数据插入到如下表中(并使用仅指定有效负载字段的 SP):
create table data
(
Id int PRIMARY KEY Identity,
payload datatime not null,
inserted datetime default (getdate()) not null
)
Run Code Online (Sandbox Code Playgroud)
请注意,这两个日期时间字段也有 UNIQUE 约束。
在客户端程序上,我在如此紧密的循环中调用 SP,以至于我遇到了 .Net DateTime.Now 值的精度问题(也可能是线程休眠),因此违反了有效负载的唯一约束。我通过结合秒表变量、一些 Thread.Sleep() 和手动构建“有效负载”数据来解决这个问题,这样它就不会违反 SQL DateTime 字段的分辨率(3.3 mS)
然而,随着插入的生成速度在 5 毫秒到 10 毫秒之间,我开始看到 SQL 端“插入”字段的问题,其中一行会因唯一键违规而定期被拒绝。只有当我将插入速率降低到 15 毫秒左右时,这个问题才会消失。这个速率可疑地类似于我在 .Net DateTime.Now 中遇到的精度问题(我在某处的帖子上读到 16mS),所以我想知道 SQL Getdate() 函数的实际精度是多少。
那么有人可以告诉我什么支持 GetDate(),它是否与 .Net DateTime.Now 值绑定到相同的源?我应该期望它达到什么样的精度?
顺便说一句,我了解 SQL 2008 服务器中的 DATETIME2 类型,因此这就提出了一个问题:该系统中 GetDate() 的精度是多少。
理论问题.
想象一下情况.我需要今天的日期和时间(不是现在,但今天 - 当天的开始).我可以使用以下代码执行此操作:
$now = time();
$today = date('Y-m-d H:i:s', mktime(0, 0, 0, date("m", $now), date("d", $now), date("Y", $now)));
Run Code Online (Sandbox Code Playgroud)
或这个:
$now = getdate();
$today = date('Y-m-d H:i:s', mktime(0, 0, 0, $now['mon'], $now['mday'], $now['year']));
Run Code Online (Sandbox Code Playgroud)
在我看过的大多数例子中,使用了第一种方法.问题很简单:为什么?第一个使用3个函数调用来获取月,日和年.
我想在数据类型为datetime2(7)的列中插入一个默认值.但是,由于我的网站托管在不同时区的服务器上,因此getdate功能无法正常运行.我想知道是否有解决方案.我做了一些研究,发现了两种方法.首先是使用GetUTCDate()函数.但是,当我显示信息时,我需要进行转换.我确信我的Web应用程序仅用于我的时区.所以我想避免这种情况.第二种方式,这是我可以通过使用SwitchOffSet函数完成的最接近的方法:
CREATE TABLE [dbo].[Test_Date](
[test_id] [int] NOT NULL,
[test_date] [datetime2](7) NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Test_Date] ADD CONSTRAINT [DF_Test_Date_test_date] DEFAULT (switchoffset(CONVERT([datetimeoffset],getutcdate()),'+13:00')) FOR [test_date]
GO
Run Code Online (Sandbox Code Playgroud)
但是,我的问题是未来几个月的+13:00原因,它将是+12:00导致白天节能时间变化的原因.结果,我每次都需要改变它.有人有解决方案吗?
谢谢.
我有一个表,其中包含IDENTITY列和GetDate()设置的DateTime列,如下所示:
CREATE TABLE [MyTable](
[Id] [int] IDENTITY(1,1) ,
[InsertTime] [datetime] DEFAULT (getdate()),
[OtherValues] [int]
)
Run Code Online (Sandbox Code Playgroud)
所有INSERT都使用IDENTITY和DateTime列的默认值执行,如下所示:
INSERT INTO [MyTable] ([OtherValues]) VALUES (1)
Run Code Online (Sandbox Code Playgroud)
始终作为任何显式交易之外的独立报表.
我希望Id会严格增加,而InsertTime也会增加但不严格.但是在负载很重的情况下,我们会看到以下几个实例:
| Id | InsertTime |
|------|-------------------------|
| 3740 | 2015-03-05 10:07:25.560 |
| 3741 | 2015-03-05 10:07:25.557 |
| 3742 | 2015-03-05 10:07:25.577 |
Run Code Online (Sandbox Code Playgroud)
我们在InsertTime中略有下降.
有谁知道这是怎么发生的,行的"正确"顺序是什么?
我已经在 SQL Server 2008 的存储过程中使用 SYSDATETIME 进行了一些测试。我已经设置了一个带有 IDENTITY 字段的 datetime2(7) 表。
我了解这种数据类型的精度和准确度之间的区别,但是,在从这个例子中插入多条记录时,我注意到一个不寻常的结果:
declare @counter int
set @counter = 0
while @counter < 100000
begin
set @counter = @counter + 1
INSERT INTO t ([now]) VALUES (SYSDATETIME())
end
Run Code Online (Sandbox Code Playgroud)
我循环使用插入语句 100,000 来确定 SYSDATETIME 是否按预期正常工作。但是,与 GETDATE 相比,它似乎并不准确。
2015-12-01 19:16:58.4102452
2015-12-01 19:16:58.4102452
2015-12-01 19:16:58.4112452
2015-12-01 19:16:58.4112452
2015-12-01 19:16:58.4122453
2015-12-01 19:16:58.4122453
2015-12-01 19:16:58.4132453
2015-12-01 19:16:58.4152455
2015-12-01 19:16:58.4152455
2015-12-01 19:16:58.4162455
2015-12-01 19:16:58.4162455
2015-12-01 19:16:58.4172456
2015-12-01 19:16:58.4172456
2015-12-01 19:16:58.4182456
2015-12-01 19:16:58.4182456
2015-12-01 19:16:58.4192457
2015-12-01 19:16:58.4192457
2015-12-01 19:16:58.4202457 …Run Code Online (Sandbox Code Playgroud) getdate ×10
sql-server ×6
date ×2
concurrency ×1
datetime2 ×1
identity ×1
javascript ×1
php ×1
precision ×1
string ×1
sysdatetime ×1
wordpress ×1