ORACLE中的SYSDATE

时间:2018-02-08 16:37:50

标签: database oracle

我正在尝试使用oracle中的SYSDATE函数获取系统日期,但我一直得到的结果等于表中我要求系统日期的行数

这是我的代码的样子:

SELECT TRUNC(SYSDATE)As Currnt_Time FROM TABLE_NAME

这是我的输出:

enter image description here

结果显示当前时间N次,我只想让它显示一次

2 个答案:

答案 0 :(得分:6)

select trunc(SYSDATE)as CURRNT_TIME from TABLE
where rownum < 2;

DUAL只有1列,一行。所以你会得到一个答案。

您要求在表上运行select,因此它将应用于所有行,除非您提供谓词。

所以你可以做到这一点,但不要这样做。

from django.db import models
from django.contrib.auth.models import User

class Kategoria(models.Model):
    name = models.CharField(max_length=250, verbose_name='Kategoria')
    slug = models.SlugField(unique=True,verbose_name='Adres SEO')
    parent = models.ForeignKey('self', blank=True, null=True, related_name='children', on_delete=models.CASCADE)

    class Meta:
        unique_together = ('slug', 'parent',)
        verbose_name = 'Kategoria'
        verbose_name_plural = 'Kategorie'

    def __str__(self):
        full_path = [self.name]
        k = self.parent

        while k is not None:
            full_path.append(k.name)
            k = k.parent

        return ' / '.join(full_path[::-1])

class Firma(models.Model):
    user = models.ForeignKey(User, default=1, verbose_name='Użytkownik', on_delete=models.CASCADE)
    title = models.CharField(max_length=250, verbose_name='Nazwa firmy')
    slug = models.SlugField(unique=True, verbose_name='Adres SEO')
    category = models.ForeignKey('Kategoria', null=True, blank=True, verbose_name='Kategoria', on_delete=models.CASCADE)
    content = models.TextField(verbose_name='Opis')
    draft = models.BooleanField(default=False, verbose_name='Szablon')
    publish = models.DateField(auto_now=False, auto_now_add=False)


    class Meta:
        verbose_name='Firma'
        verbose_name_plural='Firmy'

    def __str__(self):
        return self.title


    def get_cat_list(self):
        k = self.category
        breadcrumb = ["dummy"]
        while k is not None:
            breadcrumb.append(k.slug)
            k = k.parent

        for i in range(len(breadcrumb)-1):
            breadcrumb[i] = '/'.join(breadcrumb[-1:i-1:-1])
        return breadcrumb[-1:0:-1]

这总是比使用DUAL table更贵。这就是我们建造它的原因。

答案 1 :(得分:0)

最简单的命令应该是:

SELECT TRUNC(SYSDATE)As Currnt_Time FROM TABLE_NAME WHERE ROWNUM = 1

这不是最优雅的解决方案。