Question: The external API that my application is using, sometimes returns no values for one of the float64 fields. When that happens, I cannot unmarshal the rest of the document. 

Here is the sample code in Go playground:

<http://play.golang.org/p/Twv8b6KCtw>

```
package main

import (
    "encoding/xml"
    "fmt"
)

func main() {

    type Result struct {
        XMLName xml.Name `xml:"Person"`
        Grade   float64  `xml:"grade"`
        Name    string   `xml:"name"`
    }

    data := `
        <Person>
            <grade/>
            <name>Jack</name>
        </Person>
    `
    var v Result
    err := xml.Unmarshal([]byte(data), &v)
    if err != nil {
        fmt.Printf("error: %v", err)
        return
    }
    fmt.Printf("name: %s\n", v.Name)

}

```

If I change float64 in line 12 to string, it will work. Any idea how I can get a workaround for this? Should I just define every field as string and do the conversion manually?

Answer: 
Is this what you are looking for?

```
SELECT DATEDIFF(`pro_masastr`, NOW()) as DiffDate
FROM `i2n_profiler_users`
WHERE `userid` = 725;

```

This is no need for the additional subquery. Note thate `datediff()` is `expr1 - expr2`, so you might want the arguments in the other order:

```
SELECT DATEDIFF(now(), `pro_masastr`) as DiffDate
FROM `i2n_profiler_users`
WHERE `userid` = 725;

```
```
SELECT DATEDIFF(NOW(), 'pro_masastr') as DiffDate
FROM i2n_profiler_users
WHERE userid = SOME_ID_HERE;

```