小编Ego*_*gor的帖子

更新表变量

我有一个表变量@searchResult

DECLARE @searchResult TABLE (
    [name_template] NVARCHAR(50),
    [record_id] INT,
    [record_name] NVARCHAR(50)
);
Run Code Online (Sandbox Code Playgroud)

和表[records]

CREATE TABLE [records] (
    [record_id] INT IDENTITY(1, 1) PRIMARY KEY,
    [record_name] NVARCHAR(50)
)
Run Code Online (Sandbox Code Playgroud)

@searchResult只包含[name_template]填充的记录。我想与最新的更新它[record_id],并[record_name][records]表匹配[name_template]

我试过以下 SQL 查询但没有成功:

UPDATE @searchResult
SET [record_id] = r.[record_id], [record_name] = r.[record_name]
FROM (
    SELECT TOP 1
          r.[record_id]
        , r.[record_name]
    FROM [records] AS r
    WHERE r.[record_name] LIKE [name_template]
    ORDER BY r.[record_id] DESC
) AS r;
Run Code Online (Sandbox Code Playgroud)

错误信息:

无效的列名“name_template”。

@searchResult …

sql sql-server sql-server-2008

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

C# 将特定时区中的 1 天添加到 DateTimeOffset

我有一个实例,考虑到夏令时规则DateTimeOffset,我需要在特定的TimeZone(西欧标准时间)中添加 1 天(因此它可能会导致Offset更改)。如果没有 3rd 方库,我该怎么做?

可验证示例:

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace UnitTestProject
{
    [TestClass]
    public class TimeZoneTests
    {
        [TestMethod]
        public void DateTimeOffsetAddDays_DaylightSaving_OffsetChange()
        {
            var timeZoneId = "W. Europe Standard Time";
            var utcTimestamp = new DateTimeOffset(2017, 10, 28, 22, 0, 0, TimeZoneInfo.Utc.BaseUtcOffset);
            var weuropeStandardTimeTimestamp = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(utcTimestamp, timeZoneId);
            Assert.AreEqual(new DateTime(2017, 10, 29), weuropeStandardTimeTimestamp.DateTime);
            Assert.AreEqual(TimeSpan.FromHours(2), weuropeStandardTimeTimestamp.Offset);

            var weuropeStandardTimeTimestampNextDay = AddDaysInTimeZone(weuropeStandardTimeTimestamp, 1, timeZoneId);

            Assert.AreEqual(new DateTime(2017, 10, 30), weuropeStandardTimeTimestampNextDay);
            Assert.AreEqual(TimeSpan.FromHours(1), weuropeStandardTimeTimestamp.Offset);
        }

        private DateTimeOffset AddDaysInTimeZone(DateTimeOffset timestamp, int days, string …
Run Code Online (Sandbox Code Playgroud)

.net c# timezone datetimeoffset .net-4.6

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