小编Eri*_*ikE的帖子

仅将周数应用于整周的日期

现在的时间是: (m/d/yyyy) => 2009/01/04

在此输入图像描述

使用此命令,using datepart(wk,'20090104')我可以获得周数(对于任何给定的日期).

所以:

SELECT datepart(wk,'20090101') //1
SELECT datepart(wk,'20090102') //1
SELECT datepart(wk,'20090103') //1
SELECT datepart(wk,'20090104') //2
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.

问题 :

这3个第一个日期不是整周的一部分,所以我不能把它们放在一个固定的52周图表中.

我们公司需要看到关于每个信息周中52周一年.(每年有52整周).

在此输入图像描述

所以20090101不属于2009年的第一周!

它属于前一年(与我的问题无关)

所以我需要一个UDF(我一直在搜索,并ISOWEEK没有回答我的需求),这datetime给了我Week Number(周=整周,因此不考虑部分周).

示例:

calcweekNum ('20090101') //52 ...from the last year
calcweekNum ('20090102') //52 ...from the last year
calcweekNum ('20090103') //52 ...from the last year
calcweekNum ('20090104') //1
..
..
calcweekNum ('20090110') //1
calcweekNum ('20090111') //2
calcweekNum …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server datetime sql-server-2005

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

一次计算两个不同的子行条件

我有一张桌子Request和桌子Search.该Request表有一个ID列,它是SearchRequestID中的外键.Search使用相同的RequestID 可以有多行.SearchStatus中还有另一列,可以是Complete或Incomplete.我想要的是一个为每个RequestID返回的查询:

RequestID- Count of Search rows with 'Complete'-Count of Search rows with 'Incomplete'

这可以通过SQL轻松完成吗?

sql t-sql sql-server

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

从PST到UTC到AEST的TimeZoneInfo.ConvertTime - 关闭一小时

我转换了一个字符串,表示我用来创建DateTime对象的太平洋时区的时间:

var pacificDateTime = new DateTime(2016, 11, 16, 15, 0, 0) // 11/16/2016 3:00:00 PM
Run Code Online (Sandbox Code Playgroud)

使用它,我创建了一个DateTimeOffset因为最终它变得更容易使用.

var pacificTimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
var dateTimeNoKind = new DateTime(pacificDateTime.Ticks, DateTimeKind.Unspecified)
var DateTimeOffsetValue = TimeZoneInfo.ConverTimeToUtc(dateTimeNoKind, pacificTimeZoneInfo) // 11/16/2016 11:00:00 PM
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.UTC与Pacific之间的区别在于UTC提前8小时(给定时间在夏令时内).

然后我想从UTC转换为AEST - 但这是出现问题的地方:

var australianEasternTimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("AUS Eastern Standard Time");
TimeZoneInfo.ConvertTime(DateTimeOffsetValue, australianEasternTimeZoneInfo) // 11/17/2016 10:00:00 AM
Run Code Online (Sandbox Code Playgroud)

AEST比UTC早10个小时.我曾预料到价值,11/17/2016 09:00:00 AM但我的结果却增加了一小时.

作为测试,当我从UTC时间转换为PST或GMT或EST时,它们似乎正确地转换回来.

我觉得我错过了一些明显的东西或忽略了一些简单的东西?

c# timezone datetime datetimeoffset

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

如何引用序列中的"下一个"(尚不存在)XML节点?

所以要扩大......

我有一些XML

<root>
    <list>
        <item value="9"/>
        <item value="3"/>
        <item value="1"/>
        <item value="8"/>
        <item value="4"/>
    </list>
</root>
Run Code Online (Sandbox Code Playgroud)

我有一个XPath"/ root/list/item [4]"我相信它将检索第5个'item'元素(其value属性为4)

这表明XPath"/ root/list/item [5]"将引用(当前不存在的)第6项.

我想要的是一个XPath表达式,它将引用'Next'(尚未存在)'item'元素,无论当前有多少项...

我假设这将传递一个表达式(它将计算当前元素的数量)而不是硬编码数字.

我知道我会怎么做,但根本找不到我应该怎么做......令人沮丧.

更新:澄清......我想返回"最后一个项目节点之后的项目节点".这些属性只是为了区分现有节点).我很欣赏这将返回一个空节点集.

更新:嗯,我有我的答案所以我想这是公平的我解释为什么我想要这个:)

基本上,某些.Net代码使用xPath作为写地址而不是读地址.

我将一个不存在的位置的xPath传递给EnsureNodeExists例程.(注意:我无法改变此EnsureNodeExists例程)代码将迭代xPath的每个元素,如果它不存在则创建它,然后将其设置为下一次迭代的父元素.

因此,我可以使用"/ root/list/item [position()= last()]/following-sibling :: item [1]"3次调用此代码,这将导致创建3个项目节点.

xml xpath xquery

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

在 JavaScript 中动态执行函数

我想调用一个函数,其名称在变量中。

例如:
我动态获取字符串"pageTracker._trackpageview('/url/page1.page'); "并将其分配给变量,如下所示

var myFunction = pageTracker._trackpageview('/url/page1.page');";
Run Code Online (Sandbox Code Playgroud)

现在,当我提交页面时,我想执行变量 myFunction 中的函数。

谢谢你们。

javascript eval form-submit

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

增加SQL查询性能

我有两张桌子.在一个表中,我们输入所有类型的模型,每个模型大约有100行.第二个表包含有关第一个项目的销售数据.我需要产生这样的结果:

Date           Model    Total(WE BOUGHT)   Sold
----------     -----    ----------------   ----
2011-01-21      M34R            300         200
2011-01-21      M71S            250          22
Run Code Online (Sandbox Code Playgroud)

我的查询如下所示:

select distinct
   CONVERT(varchar(10),x.Scantime,120) as ScanDate,
   x.ModelNumber,
   (  Select count(*)
      from micro_model z
      where
         z.ModelNumber=x.ModelNumber
         and CONVERT(varchar(10),z.scantime,101)
            = CONVERT(varchar(10),x.Scantime,101)
   ) as Total,
   (   select COUNT(*)
       from
          micro_Model m
          inner join micro_model_sold y on m.IDNO=y.IDNO
       where
          CONVERT(varchar(10),m.scantime,101)
             = CONVERT(varchar(10),x.Scantime,101)
          and x.ModelNumber=m.ModelNumber
   ) as Sold
from maxis.dbo.maxis_IMEI_Model x 
where
    CONVERT(varchar(10),x.scantime,101) between '01/01/2011' and '01/25/2011'
Run Code Online (Sandbox Code Playgroud)

我能够从上面的查询中实现这一点,但执行时间超过2分钟.请建议我如何提高性能.我听说过数据透视表和索引视图,但从未做过.

sql-server performance

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

如何创建.csproj文件的DLL

csc /target:library /out:MyMaths.dll ClassLibraryFunction.csproj
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码在VS.Cmd编译器中生成一个完整解决方案的DLL.但是,我收到编译错误,并且没有生成DLL.

c# csc

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