Num::toDateTime()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 4
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 6
rs 10
1
<?php
2
3
namespace Helix\DB\Fluent;
4
5
use Helix\DB;
6
use Helix\DB\Fluent\Num\NumTrait;
7
use Helix\DB\Fluent\Str\StrCastTrait;
8
9
/**
10
 * A numeric expression.
11
 */
12
class Num extends Expression implements ValueInterface
13
{
14
15
    use NumTrait;
16
    use FactoryFormatTrait;
17
    use StrCastTrait;
18
19
    /**
20
     * `PI()`
21
     *
22
     * @param DB $db
23
     * @return static
24
     */
25
    public static function pi(DB $db)
26
    {
27
        return static::factory($db, "PI()");
28
    }
29
30
    /**
31
     * `RAND()` float between `0` and `1`
32
     *
33
     * @param DB $db
34
     * @return static
35
     */
36
    public static function rand(DB $db)
37
    {
38
        return static::factory($db, "RAND()");
39
    }
40
41
    /**
42
     * {@link DateTime} from a Unix timestamp.
43
     *
44
     * The expression must be a non-negative integer.
45
     *
46
     * @return DateTime
47
     */
48
    public function toDateTime()
49
    {
50
        return DateTime::fromFormat($this->db, [
51
            'mysql' => "CAST(%s AT TIME ZONE 'UTC' AS DATETIME)",
52
            'sqlite' => "DATETIME(%s,'unixepoch')",
53
        ], $this);
54
    }
55
}
56