【问题标题】:Is there any way to format the date of a field in a query? [duplicate]有没有办法格式化查询中字段的日期? [复制]
【发布时间】:2013-02-28 21:52:42
【问题描述】:

我收到一个包含不希望的日期格式字段的查询(2013 年 2 月 21 日星期四 00:00:00 EST) 有什么办法可以修改为 mm-dd-yyy?

我正在使用 javascript,我找到了一种 php 方式来执行此操作,但遗憾的是它必须使用 javascript,因此指令必须与 TOAD 中的指令几乎相同。

我尝试了 CONVERT() 方法,但它不起作用。我不确定我是否正确使用它

【问题讨论】:

标签: javascript sql date format


【解决方案1】:

Convert() 函数将起作用,但您需要使用此处的正确格式代码: SQL Convert() Function.

SELECT Convert(char(10), @date, 110)

【讨论】:

    【解决方案2】:

    Date.js 非常适合日期格式。

    【讨论】:

      【解决方案3】:

      您可能可以尝试转换为 unix 时间戳,然后进行格式化。我还没有测试过这个,它可能会抛出一个错误,但你明白了。

      var input = your date;
      input = input.split(" - ").map(function (date){
      return Date.parse(date+"-0500")/1000;
      }).join(" - ");
      
      var year = input.getYear();
      var month = input.getMonth();
      var day = input.getDay();
      var hours = input.getHours();
      var minutes = input.getMinutes();
      var seconds = input.getSeconds();
      var formatted = month + " " + day + ", " + year + " at " hours + ':' + minutes + ':' +     seconds;
      

      【讨论】:

        【解决方案4】:

        JS中有基本的Date对象函数可以使用。

        首先,创建日期变量:

        var date = new Date('your date value');
        

        然后您可以访问各个日期片段:

        var month = date.getMonth() + 1;  //gets the month . . . it's 0-based, so add 1
        var day = date.getDate();         //gets the day of the month
        var year = date.getFullYear();    //gets the 4-digit year
        

        获得这些值后,您可以将它们以您喜欢的任何格式连接起来。对于基本的 mm-dd-yyyy,请使用:

        var formattedDate = month + "-" + day + "-" + year;
        

        还有时间和时区值。

        【讨论】:

          【解决方案5】:

          这是一种严重混淆的格式。有两种修改它的基本方法,一种是重新排序您拥有的位,另一种是将其转换为日期对象并使用它来创建新字符串。无论哪种方式,您都没有说如何处理时区偏移量。

          对时区使用缩写或名称是不明确的,它们没有标准,而且有些是重复的(EST 用于三个不同的时区)。无论如何,一个简单的重新排序可以是:

          function formatDate(s) {
            var months = {jan:'01', feb:'02', mar:'03', apr:'04',
                          may:'05', jun:'06', jul:'07', aug:'08',
                          sep:'09', oct:'10', nov:'11', dec:'12'};
            var s = s.split(' ');
            var d = (s[2] < 10? '0' : '') + s[2]; 
          
            return months[s[1].toLowerCase()] + '-' + d + '-' + s[5];
          }
          
          alert(formatDate('Thu Feb 21 00:00:00 EST 2013')); // 02-21-2013
          

          输出格式 (mm-dd-yyyy) 不明确,请考虑使用 21-Feb-2013 或 ISO8601 (2013-02-21) 等标准格式。

          如果您需要考虑时区,创建日期对象、添加偏移量、然后取回新日期会更容易。但是,您还需要弄清楚如何将字符串时区转换为可与日期一起使用的数字(最好是分钟,但小时也可以)。

          【讨论】:

            猜你喜欢
            • 2012-11-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-01-31
            • 1970-01-01
            • 2011-07-28
            相关资源
            最近更新 更多