代码之家  ›  专栏  ›  技术社区  ›  I Love Stackoverflow

Delphi7:获取SQL server系统日期和时间格式

  •  1
  • I Love Stackoverflow  · 技术社区  · 7 年前

    date time 格式 SQL Server .

    我正在使用 Delphi7 在这里我的场景如下:

    yyyymmdd 客户端的SQL server具有 mm/dd/yyyy (或任何其他有效的日期格式)而不是生成的查询应包含正确的日期格式。

    注意:我已经用 delphi7 MSSQL和将读取服务器的区域日期格式。并将服务器的区域日期格式转换为MSSQL日期格式。

    5 回复  |  直到 7 年前
        1
  •  2
  •   Aaron Bertrand    6 年前

    如果我的服务器的区域日期格式是(例如)yyyymmdd和客户端的

    你在给自己制造麻烦。
    您构建的查询根本不需要关心客户机或sql server的区域格式是如何设置的。

    你可以在这里找到它们 http://karaszi.com/the-ultimate-guide-to-the-datetime-datatypes


    "YYYYMMDD" 日期,以及 "YYYYMMDD hh:mm:ss" 日期时间的ex('20170831 14:23:05')。

    当然,最好在查询中使用参数。

        2
  •  0
  •   Ash Man    7 年前

    在我看来,你应该做的是了解你的客户服务器有一个标准格式,如果它是标准的,那么把你的日期放在不同的变量中,即不是一个单一的文本/数字格式“yyyymmdd”。对每个变量使用不同的变量。并通过阅读格式将它们相互匹配。

    如果以上是你的问题,那么试试这个。

    select SUBSTRING(Date,0,CHARINDEX('/',Date,0)) as Splitted    
    

    Month=SUBSTRING(Date,0,2)
    Date=SUBSTRING(Date,3,2)
    Year=SUBSTRING(Date,6,4)
    

    然后以您想要的任何格式显示日期。

        3
  •  0
  •   Ash Man    7 年前

    选择*表单数据,其中区域=“Abc”

    然后搜索“:”或“/”

    你可能会想,如果我们在2001年1月1日,那又怎么样?

    因此,我假设来自同一个地方的所有条目都有一个统一的格式。并检查所有条目,通过检查是否满足所有条件来确定答案。

    如果你处理实时类型的数据库,那么按今天的日期进行比较。

        4
  •  0
  •   Abhishek Kanrar    7 年前

    在查询中尝试以下操作:

    将(varchar,DOB,103)转换为“出生日期”

        5
  •  0
  •   Marc Guillot    7 年前

    Select DateFormat 
    From   sys.syslanguages 
    Where  name = @@Language