小编Mik*_*ike的帖子

SQL Server:使用CASE和LIKE

我对SQL很陌生,希望有人可以帮助我.

我有一个存储过程,我想根据列是否包含某个国家/地区来传递不同的值.

到目前为止,我只CASE在检查具有特定数字或值的匹配时使用,所以我不确定这个.有人可以告诉我以下是否有效和正确或让我知道如何正确地写这个(只是关于括号中的部分)?

(CASE countries
     WHEN LIKE '%'+@selCountry+'%' THEN 'national'
     ELSE 'regional') AS validity
Run Code Online (Sandbox Code Playgroud)

注意: @selCountry是国家/地区的变量名称,国家/地区可以为空,一个国家或多个国家/地区以逗号和空格分隔.基本上我只想检查国家是否包含@selCountry,如果是,则将有效性设置为"国家".

sql sql-server stored-procedures case sql-like

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

SQL Server:如何从datetime列中选择具有特定日期的记录

我对SQL很陌生,希望有人可以帮助我:

我有一个表格,其中一列dateX格式化为日期时间并包含标准日期.如何从此表中选择此dateX等于特定日期的所有记录,例如2014年5月9日?

我试过以下但是即使我有几个这个日期的记录,这也没有返回.

SELECT     *
FROM         dbo.LogRequests
WHERE     (CONVERT(VARCHAR(10), dateX, 101) = '09/05/14')
Run Code Online (Sandbox Code Playgroud)

编辑:在数据库中,上面的示例如下所示,使用SQL 2012: 2014-05-09 00:00:00.000

非常感谢Mike的任何帮助.

sql sql-server datetime

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

SQL Server:仅按月和日匹配日期

我有一个存储过程,根据与日期输入匹配的日期获取记录,到目前为止工作正常.表格中的日期和输入日期都被格式化为日期时间.

我没有比较完整的日期,而是想改变它,以便它只比较月和日,以便它适用于任何一年的输入.

示例: 表中的日期保存为2013-04-30,输入日期为2014-04-30.我想要的是,只要月份和日期匹配,存储过程仍然会独立于年份返回该记录.

我的存储过程:

ALTER PROCEDURE [dbo].[FetchDays]
    @inputDate datetime
AS
BEGIN
    SET NOCOUNT ON;
    SELECT      dateID,
                dayDT,
                countries,
                regions
    FROM        DaysDT
    WHERE       dayDT = @inputDate
    FOR XML PATH('daysFixed'), ELEMENTS, TYPE, ROOT('root')

END
Run Code Online (Sandbox Code Playgroud)

非常感谢Mike的任何帮助.

sql sql-server stored-procedures date

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

替换日期时间的年份

我有一个带有列(dateDT)的表,格式化为datetime,并且@selYear我的Select中的year()的变量输入格式为int.

如何用变量输入替换表中日期,并以datetime格式返回结果(在Select中)?

我尝试了以下但是这会返回错误的日期/年份:

CONVERT(DATETIME, (@selYear + MONTH(dateDT) + DAY(dateDT))) AS dateDT,
Run Code Online (Sandbox Code Playgroud)

例:

@selYear = 2014
dateDT = 2010-05-02 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我的结果应该是:

dateDT = 2014-05-02 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server datetime

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

SQL:如何使存储过程中的表名动态化

我对 SQL Server 很陌生,希望这里有人可以帮助我(我使用的是 QL Server 2008)。

下面是一个按预期工作的小程序。

现在我想使用相同的过程来更新多个表,因为所有这些表都具有完全相同的列名和列格式,唯一的区别是我在XXX下面添加的表名的第二部分。

有人可以告诉我如何使其动态化并为此提供一些解释吗?我不能在这里提供更多信息,因为我不确定如何处理这个问题 - 除了可能在执行之前声明@sql nvarchar(max)和包装整个查询SET @sql = N'...'

我的存储过程:

    CREATE PROCEDURE [dbo].[Cal_UpdateTeam]
        @team nvarchar(100),
        @teamID int,
        @notes nvarchar(1000),
        @log nvarchar(100),
        @admin varchar(50)
    AS
    BEGIN
        SET NOCOUNT ON;

        BEGIN   

        IF NOT EXISTS 
        (
                SELECT  * 
                FROM    Cal_XXX
                WHERE   teamID = @teamID
        )
        INSERT INTO Cal_XXX
        (
                team,
                teamID,
                notes,
                log,
                admin
        )
        SELECT  @team,
                @teamID,
                @notes,
                @log,
                @admin
        ELSE
                UPDATE  Cal_XXX
                SET     team = @team,
                        teamID = …
Run Code Online (Sandbox Code Playgroud)

sql sql-server stored-procedures dynamic

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

PHP/Regex:从字符串中提取字符串

我刚开始使用PHP,希望有人可以帮助我.

我试图myRegion从另一个字符串(" mainString")中提取一个字符串(" "),其中我的字符串始终以" myCountry:" 开头,;如果主字符串在myCountry之后包含更多国家,则以分号()结尾,如果主字符串不包含任何内容之后不再包含更多国家/地区.

显示主字符串的不同选项的示例:

  • myCountry:region1,region2
  • myCountry:region1,region2,region3 ; otherCountry:region1
  • otherCountry:region1; myCountry:region1 ; otherCountry:region1,region2

我想要提取的内容始终是粗体部分.

我在考虑类似下面的内容,但这看起来还不对:

$myRegions = strstr($mainString, $myCountry);                   
$myRegions = str_replace($myCountry . ": ", "", $myRegions);
$myRegions = substr($myRegions, 0, strpos($myRegions, ";"));
Run Code Online (Sandbox Code Playgroud)

迈克,非常感谢您提供任何帮助.

php regex substr strstr str-replace

0
推荐指数
2
解决办法
7643
查看次数

如何使用当前年份在PHP中创建日期?

有人可以告诉我如何使用当前年份而不是硬编码下面的年份?

$yearCurrent = date('Y');
$dayLast = new DateTime('2014-12-31');
Run Code Online (Sandbox Code Playgroud)

我想这可能是非常简单的事情,但到目前为止我找不到解决方案.

php datetime date

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